summaryrefslogtreecommitdiff
path: root/tests/list_atomic.template
Commit message (Collapse)AuthorAgeFilesLines
* Refine copyright terms in GPL source filesIvan Maidanski2022-05-191-2/+13
| | | | | | | | | | | | | | | | The GPL terms are copied from COPYING file. * src/atomic_ops_malloc.c: Refine GPL copyright text in the header comment by copying it as-is from COPYING file (as recommended in "Apply These Terms to Your New Programs" section). * src/atomic_ops_stack.c: Likewise. * tests/list_atomic.template: Likewise. * tests/run_parallel.h: Likewise. * tests/test_atomic.c: Likewise. * tests/test_atomic_include.template: Likewise. * tests/test_malloc.c: Likewise. * tests/test_stack.c: Likewise. * tests/test_atomic_include.h: Regenerate.
* Eliminate 'using argument that points at uninitialized var' cppcheck errorIvan Maidanski2018-01-311-1/+1
| | | | | | * tests/list_atomic.template [AO_HAVE_test_and_setXX] (XSIZE_list_atomicXX): Initialize ts local variable (to AO_TS_INITIALIZER).
* Workaround 'unused result' code defects in list_atomic.templateIvan Maidanski2017-07-241-7/+11
| | | | | | | | | | | | | | | | | | | | | * tests/list_atomic.template: Include stdlib.h (needed for exit() prototype). * tests/list_atomic.template [AO_HAVE_XSIZE_loadXX] (XSIZE_list_atomicXX): Cast AO_XSIZE_loadXX() result to void. * tests/list_atomic.template [AO_HAVE_XSIZE_fetch_and_addXX]: Cast AO_XSIZE_fetch_and_addXX() result to void. * tests/list_atomic.template [AO_HAVE_XSIZE_fetch_and_add1XX] (XSIZE_list_atomicXX): Cast AO_XSIZE_fetch_and_add1XX() result to void. * tests/list_atomic.template [AO_HAVE_XSIZE_fetch_and_sub1XX] (XSIZE_list_atomicXX): Cast AO_XSIZE_fetch_and_sub1XX() result to void. * tests/list_atomic.template [AO_HAVE_test_and_setXX] (XSIZE_list_atomicXX): Cast AO_test_and_setXX() result to void. * tests/list_atomic.template [AO_HAVE_XSIZE_compare_and_swapXX] (XSIZE_list_atomicXX): Call exit(1) if AO_XSIZE_compare_and_swapXX failed. * tests/list_atomic.template [AO_HAVE_XSIZE_fetch_compare_and_swapXX] (XSIZE_list_atomicXX): Call exit(1) if AO_XSIZE_fetch_compare_and_swapXX failed.
* Tests: workaround GCC 4.4.3 warning reported for list_atomic.c 'val'Ivan Maidanski2013-08-171-1/+1
| | | | | | | | | * tests/list_atomic.template (XSIZE_list_atomicXX): Use "static" modifier for "val" local variable to initialize it (cannot use direct assignment to zero because "val" type could be a SIMD vector type if XCTYPE is AO_double_t) to workaround GCC v4.4.3 "'val' is used uninitialized in this function" warning reported for AO_load.
* tests: Add char/short/int/AO_double_t and dd_acquire cases to list_atomicIvan Maidanski2013-08-141-1/+8
| | | | | | | * tests/Makefile.am (list_atomic.c): Iterate over XSIZE/XCTYPE (in addition to XX); expand XX also as _dd_acquire_read. * tests/list_atomic.template (XSIZE_list_atomicXX): Define 'val' local variable only if used (needed for AO_double_t case).
* tests: Add and/or/xor entries to list_atomicIvan Maidanski2013-08-111-1/+22
| | | | | * tests/list_atomic.template (list_atomicXX): Add AO_XSIZE_andXX, AO_XSIZE_orXX, AO_XSIZE_xorXX invocations.
* tests: Parameterize list_atomic template with XSIZEIvan Maidanski2013-08-111-38/+39
| | | | | | * tests/Makefile.am (list_atomic.c): Substitute XSIZE/XCTYPE for AO_t. * tests/list_atomic.template (list_atomicXX): Parameterize with XSIZE and XCTYPE (except for AO_nop and AO_test_and_set).
* list_atomic: Add makefile rule to test list_atomic.template syntaxIvan Maidanski2013-08-111-28/+41
| | | | | | | | | | | | | | | | | * tests/Makefile.am (BUILT_SOURCES, CLEANFILES): Add "list_atomic.o". * tests/Makefile.am (list_atomic.o): New rule (to verify list_atomic.c is valid C code). * tests/list_atomic.template (list_atomicXX): Use "volatile" for "val" local variable. * tests/list_atomic.template (list_atomicXX): Define "oldval", "newval", "ts" and "incr" local variables only if used; cast string literals to void (to prevent compiler warnings). * tests/list_atomic.template (list_atomicXX): Use AO_t type for "incr" local variable instead of C long type. * tests/list_atomic.template (list_atomicXX): Define "oldval", "newval", "incr" as statitc local variables, and remove explicit initialization to zero (to void problems with initialization of these variables for AO_double_t case if the latter is a struct).
* tests: Do not use deprecated AO_T and AO_TS_TIvan Maidanski2013-08-111-2/+3
| | | | | | | | * tests/list_atomic.template (list_atomicXX): Use AO_t instead of deprecated AO_T. * tests/list_atomic.template (list_atomicXX): Use AO_TS_t instead of deprecated AO_TS_T. * tests/test_atomic.c (lock): Likewise.
* Implement most AO_fetch_compare_and_swap primitivesIvan Maidanski2011-11-111-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/atomic_ops.c (AO_fetch_compare_and_swap_emulation): Implement. * src/atomic_ops.h: Remove FIXME for AO_fetch_compare_and_swap. * src/atomic_ops/generalize.h (AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release, AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_write, AO_fetch_compare_and_swap_read, AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_full, AO_fetch_compare_and_swap_release_write, AO_fetch_compare_and_swap_acquire_read, AO_fetch_compare_and_swap_dd_acquire_read): Implement; define the corresponding AO_HAVE_... macro. * src/atomic_ops/sysdeps/ao_t_is_int.h (AO_int_fetch_compare_and_swap_full, AO_int_fetch_compare_and_swap_acquire, AO_int_fetch_compare_and_swap_release, AO_int_fetch_compare_and_swap_write, AO_int_fetch_compare_and_swap_read, AO_int_fetch_compare_and_swap): Likewise. * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_fetch_compare_and_swap): Likewise. * src/atomic_ops/sysdeps/emul_cas.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/gcc/arm.h (AO_fetch_compare_and_swap): Likewise. * src/atomic_ops/sysdeps/gcc/hexagon.h (AO_fetch_compare_and_swap): Likewise. * src/atomic_ops/sysdeps/gcc/ia64.h (AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release, AO_char_fetch_compare_and_swap_acquire, AO_char_fetch_compare_and_swap_release, AO_short_fetch_compare_and_swap_acquire, AO_short_fetch_compare_and_swap_release, AO_int_fetch_compare_and_swap_acquire, AO_int_fetch_compare_and_swap_release): Likewise. * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release, AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/gcc/x86.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/generic_pthread.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/hpc/ia64.h (AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release, AO_char_fetch_compare_and_swap_acquire, AO_char_fetch_compare_and_swap_release, AO_short_fetch_compare_and_swap_acquire, AO_short_fetch_compare_and_swap_release): Likewise. * src/atomic_ops/sysdeps/icc/ia64.h (AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release, AO_char_fetch_compare_and_swap_acquire, AO_char_fetch_compare_and_swap_release, AO_short_fetch_compare_and_swap_acquire, AO_short_fetch_compare_and_swap_release, AO_int_fetch_compare_and_swap_acquire, AO_int_fetch_compare_and_swap_release): Likewise. * src/atomic_ops/sysdeps/msftc/common32_defs.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/sunc/x86.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_fetch_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/emul_cas.h (AO_fetch_compare_and_swap_emulation): Declare the function. * src/atomic_ops/sysdeps/gcc/mips.h: Adjust FIXME. * src/atomic_ops/sysdeps/gcc/sparc.h: Likewise. * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release, AO_fetch_compare_and_swap_full): Add implementation stub. * tests/list_atomic.template (list_atomicXX): Add AO_fetch_compare_and_swapXX call. * tests/test_atomic_include.template (test_atomicXX): Likewise.
* Add FIXMEs to add AO_fetch_compare_and_swap primitivesIvan Maidanski2011-11-111-0/+1
|
* Remove duplicate doc/COPYING and empty NEWS files.Ivan Maidanski2011-08-091-1/+1
| | | | | | | | | | * NEWS, doc/COPYING: Remove. * doc/Makefile.am (dist_pkgdata_DATA): Remove "COPYING". * src/atomic_ops_malloc.c, src/atomic_ops_stack.c, tests/list_atomic.template, tests/run_parallel.inc, tests/test_atomic.template, tests/test_atomic.c, tests/test_malloc.c, tests/test_stack.c: Adjust "COPYING" filename in comments. * tests/list_atomic.c, tests/test_atomic_include.h: Regenerate.
* 2011-07-14 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-251-24/+21
| | | | | | | | | | | | | | | | | | | | * tests/list_atomic.template (list_atomicXX): Remove "addr" local variable (use "&val" instead); initialize "newval" and "oldval" local variables; rename "tsaddr" local variable to "ts" one. * tests/list_atomic.template (list_atomicXX): Fix AO_test_and_setXX call (pass address instead of value). * tests/list_atomic.template: Expand all tabs to spaces; remove trailing spaces at EOLn. * tests/run_parallel.inc: Ditto. * tests/test_atomic.c: Ditto. * tests/list_atomic.c: Regenerate. * tests/run_parallel.inc (AO_PTRDIFF_T): New macro. * tests/run_parallel.inc (tramp): Cast between pointer and integer types via casting to AO_PTRDIFF_T. * tests/test_atomic.c (add1sub1_thr, acqrel_thr): Ditto. * tests/run_parallel.inc (run_parallel): Adjust printf format specifiers for DWORD parameters. * tests/test_stack.c: Skip test if no pthreads.
* libatomic_ops-1.0 tarball importlibatomic_ops-1_0Ivan Maidanski2011-07-251-0/+71