Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC TDC 1ns 5cha - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
FMC TDC 1ns 5cha - Software
Commits
9f93a998
Commit
9f93a998
authored
Sep 10, 2018
by
Federico Vaga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ut: validate some parameters read/write
Signed-off-by:
Federico Vaga
<
federico.vaga@cern.ch
>
parent
769204e4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
3 deletions
+139
-3
fmctdc-ut.c
unittest/fmctdc-ut.c
+139
-3
No files found.
unittest/fmctdc-ut.c
View file @
9f93a998
...
...
@@ -58,9 +58,134 @@ static void fmctdc_param_tear_down(struct m_suite *m_suite)
static
void
fmctdc_param_test1
(
struct
m_test
*
m_test
)
{
/* First Test */
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
int
i
,
fd
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
fd
=
fmctdc_fileno_channel
(
tdc
,
i
);
m_assert_int_lt
(
0
,
fd
);
}
}
static
const
char
*
fmctdc_param_test1_desc
=
"All file descriptors must be valid (positive number)"
;
static
void
fmctdc_param_test2
(
struct
m_test
*
m_test
)
{
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
unsigned
int
timeout
,
timeout_rb
;
int
i
,
err
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
for
(
timeout
=
1
;
timeout
<
1000
;
timeout
*=
10
)
{
err
=
fmctdc_coalescing_timeout_set
(
tdc
,
i
,
timeout
);
m_assert_int_eq
(
0
,
err
);
err
=
fmctdc_coalescing_timeout_get
(
tdc
,
i
,
&
timeout_rb
);
m_assert_int_eq
(
0
,
err
);
m_assert_int_eq
(
timeout
,
timeout_rb
);
}
}
}
static
const
char
*
fmctdc_param_test2_desc
=
"Being able to change the coalescing timeout"
;
static
void
fmctdc_param_test3
(
struct
m_test
*
m_test
)
{
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
int
i
,
err
,
ret
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
/* disable */
err
=
fmctdc_set_termination
(
tdc
,
i
,
0
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_termination
(
tdc
,
i
);
m_assert_int_eq
(
0
,
ret
);
/* enable */
err
=
fmctdc_set_termination
(
tdc
,
i
,
1
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_termination
(
tdc
,
i
);
m_assert_int_eq
(
1
,
ret
);
/* disable */
err
=
fmctdc_set_termination
(
tdc
,
i
,
0
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_termination
(
tdc
,
i
);
m_assert_int_eq
(
0
,
ret
);
}
}
static
const
char
*
fmctdc_param_test3_desc
=
"Being able to enable/disable termination"
;
static
void
fmctdc_param_test4
(
struct
m_test
*
m_test
)
{
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
int
i
,
err
,
ret
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
/* disable */
err
=
fmctdc_channel_status_set
(
tdc
,
i
,
FMCTDC_STATUS_DISABLE
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_channel_status_get
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_STATUS_DISABLE
,
ret
);
/* enable */
err
=
fmctdc_channel_status_set
(
tdc
,
i
,
FMCTDC_STATUS_ENABLE
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_channel_status_get
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_STATUS_ENABLE
,
ret
);
/* disable */
err
=
fmctdc_channel_status_set
(
tdc
,
i
,
FMCTDC_STATUS_DISABLE
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_channel_status_get
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_STATUS_DISABLE
,
ret
);
}
}
static
const
char
*
fmctdc_param_test4_desc
=
"Being able to enable/disable channel"
;
static
void
fmctdc_param_test5
(
struct
m_test
*
m_test
)
{
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
int
i
,
err
,
ret
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
err
=
fmctdc_set_buffer_mode
(
tdc
,
i
,
FMCTDC_BUFFER_CIRC
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_buffer_mode
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_BUFFER_CIRC
,
ret
);
err
=
fmctdc_set_buffer_mode
(
tdc
,
i
,
FMCTDC_BUFFER_FIFO
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_buffer_mode
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_BUFFER_FIFO
,
ret
);
}
}
static
const
char
*
fmctdc_param_test5_desc
=
"Being able to change buffer mode: FIFO, CIRC"
;
static
void
fmctdc_param_test6
(
struct
m_test
*
m_test
)
{
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
unsigned
int
len
;
int
i
,
err
,
ret
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
for
(
len
=
1
;
len
<
64
;
len
<<=
1
)
{
err
=
fmctdc_set_buffer_len
(
tdc
,
i
,
len
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_buffer_len
(
tdc
,
i
);
m_assert_int_eq
(
len
,
ret
);
}
}
}
static
const
char
*
fmctdc_param_test1_desc
=
""
;
static
const
char
*
fmctdc_param_test6_desc
=
"Being able to change the software buffer len"
;
int
main
(
int
argc
,
char
*
argv
[])
...
...
@@ -68,8 +193,19 @@ int main(int argc, char *argv[])
struct
m_test
fmctdc_param_tests
[]
=
{
m_test_desc
(
NULL
,
fmctdc_param_test1
,
NULL
,
fmctdc_param_test1_desc
),
m_test_desc
(
NULL
,
fmctdc_param_test2
,
NULL
,
fmctdc_param_test2_desc
),
m_test_desc
(
NULL
,
fmctdc_param_test3
,
NULL
,
fmctdc_param_test3_desc
),
m_test_desc
(
NULL
,
fmctdc_param_test4
,
NULL
,
fmctdc_param_test4_desc
),
m_test_desc
(
NULL
,
fmctdc_param_test5
,
NULL
,
fmctdc_param_test5_desc
),
m_test_desc
(
NULL
,
fmctdc_param_test6
,
NULL
,
fmctdc_param_test6_desc
),
};
struct
m_suite
fmctdc_suite
=
m_suite
(
"FMC TDC test: parameters"
,
0
,
struct
m_suite
fmctdc_suite
=
m_suite
(
"FMC TDC test: parameters"
,
M_VERBOSE
,
fmctdc_param_tests
,
fmctdc_param_set_up
,
fmctdc_param_tear_down
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment