Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
Language: Cpp
BasedOnStyle: WebKit
PointerAlignment: Right
---
19 changes: 19 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Check repository
on:
push:
tags:
- '*'
branches:
- 'master'

pull_request:

jobs:
pre_commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install packages
run: sudo apt update -y && sudo apt install -y pre-commit clang-format
- name: Check pre-commit hooks
run: pre-commit run --show-diff-on-failure --color=always --all-files
11 changes: 11 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
repos:
- repo: local
hooks:
- id: clang-format
name: clang-format
entry: clang-format -i
language: system
files: ^xspress3App/
types:
- file
- c++
33 changes: 16 additions & 17 deletions xspress3App/src/tests/xspress3EpicsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,30 @@
#define BOOST_TEST_MODULE Fixtures
#include <boost/test/unit_test.hpp>

#include <stdio.h>
#include "xspress3Epics.h"
#include "xspress3.h"
#include "xspress3Epics.h"
#include <stdio.h>

#define MAX_SPECTRA 4096
#define NUM_CHANNELS 10

// asynPorts seem to hang around even after the xspress destructor so use a new port name for each test suite.
char asynPortHack = 1;

struct xspress3Det
{
struct xspress3Det {
Xspress3 xsp;
Xspress3 *pXsp;

xspress3Det() : xsp(&asynPortHack, NUM_CHANNELS)

xspress3Det()
: xsp(&asynPortHack, NUM_CHANNELS)
{
pXsp = &xsp;
BOOST_TEST_MESSAGE("setup xspress");
xsp.connect();
xsp.setWindow(0, 5, 0, 4);
asynPortHack++;
}

~xspress3Det()
{
if (pXsp == NULL)
Expand All @@ -44,24 +44,24 @@ BOOST_AUTO_TEST_CASE(createSCAArray)

BOOST_AUTO_TEST_CASE(createMCAArrayUInt32)
{
size_t dims[2] = {MAX_SPECTRA, NUM_CHANNELS};
size_t dims[2] = { MAX_SPECTRA, NUM_CHANNELS };
NDArray *pMCA;
BOOST_CHECK(xsp.createMCAArray(dims, pMCA, NDUInt32) == false);
}

BOOST_AUTO_TEST_CASE(createMCAArrayFloat64)
{
size_t dims[2] = {MAX_SPECTRA, NUM_CHANNELS};
size_t dims[2] = { MAX_SPECTRA, NUM_CHANNELS };
NDArray *pMCA;
BOOST_CHECK(xsp.createMCAArray(dims, pMCA, NDFloat64) == false);
}

BOOST_AUTO_TEST_CASE(readFrameDouble)
{
size_t dims[2] = {MAX_SPECTRA, NUM_CHANNELS};
size_t dims[2] = { MAX_SPECTRA, NUM_CHANNELS };
double *pMCAData, *pSCA;
pSCA = (double*)malloc(XSP3_SW_NUM_SCALERS * NUM_CHANNELS * 8);
pMCAData = (double*)malloc(MAX_SPECTRA * NUM_CHANNELS * 8);
pSCA = (double *)malloc(XSP3_SW_NUM_SCALERS * NUM_CHANNELS * 8);
pMCAData = (double *)malloc(MAX_SPECTRA * NUM_CHANNELS * 8);
BOOST_CHECK(xsp.readFrame(pSCA, pMCAData, 1, MAX_SPECTRA) == false);
free(pSCA);
free(pMCAData);
Expand All @@ -82,16 +82,16 @@ BOOST_AUTO_TEST_CASE(integration)
NDArray *pMCA;
double *pData;
void *pSCA;
size_t dims[2] = {MAX_SPECTRA, NUM_CHANNELS};
size_t dims[2] = { MAX_SPECTRA, NUM_CHANNELS };
xsp3 = xsp.getXsp3();
xsp.connect();
xsp.createMCAArray(dims, pMCA, NDFloat64);
pData = (double*)pMCA->pData;
pData = (double *)pMCA->pData;
xsp.createSCAArray(pSCA);
xsp3->histogram_start(xsp.getXsp3Handle(), -1);
xsp.readFrame(static_cast<double*>(pSCA), pData, 1, MAX_SPECTRA);
xsp.readFrame(static_cast<double *>(pSCA), pData, 1, MAX_SPECTRA);
BOOST_CHECK(pData[0] == 1);
for (int i=0; i<MAX_SPECTRA; i++)
for (int i = 0; i < MAX_SPECTRA; i++)
BOOST_CHECK(pData[i] == (int)pData[i] % 100);
free(pSCA);
pMCA->release();
Expand All @@ -101,4 +101,3 @@ BOOST_AUTO_TEST_CASE(dataTask)
{
xspress3Config(&++asynPortHack, NUM_CHANNELS, 1, "127.0.0.1", 16, 16, MAX_SPECTRA, -1, -1, 1, 1);
}

Loading