summaryrefslogtreecommitdiffstats
path: root/tests/timer/timer_test.c
Commit message (Collapse)AuthorAgeFilesLines
* timer: add osmo_timer_setup()Pablo Neira Ayuso2017-05-091-6/+3
| | | | | | | | | | | | | | | Add a new function timer function to set up the timer, similar to what we have in the Linux kernel. This patch also converts existing opencoded timer setup in the libosmocore tree as initial client of this new function. This patch implicitly removes function callback passed by reference that defeat compile time type validation. Compile-tested only, but I ran make check that reports success when testing timer infrastructure. Change-Id: I2fa49972ecaab3748b25168b26d92034e9145666
* timer_test: set 8 as default steps, use the default in testsuite.atNeels Hofmeyr2016-09-221-1/+1
| | | | Change-Id: I5070578e9fe2bdacaad000eaafb8dc5f549d6f3e
* timer_test: print more details to stdout to checkNeels Hofmeyr2016-09-221-3/+18
| | | | | | | The test is now fully deterministic, so include all detail in stdout, to check for. Change-Id: Iecf6387f1d25253fcf1260777673853030c1d326
* timer_test: redirect some output from stderr to stdoutNeels Hofmeyr2016-09-221-20/+18
| | | | | | This way we can check the output in timer_test.ok. Change-Id: Ia3bba1c650be3558d370e0f59d4ee7f36ef97506
* timer_test: remove all random elementsNeels Hofmeyr2016-09-221-3/+6
| | | | Change-Id: I9833031407e99f5d7a1144c26b68a7e320b2020d
* timer_test: do not use real time: deterministic and fasterNeels Hofmeyr2016-09-221-20/+15
| | | | | | | | | | | | | | | Use osmo_gettimeofday_override* to decouple the timer test from real time. No longer call osmo_select_main(), since select() actually waits for real time. This reduces the timer_test to the osmo_timer_* logic and excludes the real time and osmo_timers_nearest() accuracy testing with actual waiting involved. This may be seen as a loss, but is more fit for a test suite. The main point here is to get deterministic results in jenkins, so that we don't have to retrigger jobs based on timing failures; added bonus is that the test runs much faster now. Change-Id: Ic5649512df86dd17070daa2f314159eafaf8feb8
* add osmo_gettimeofday as a shim around gettimeofdayNeels Hofmeyr2016-09-221-2/+2
| | | | | | | This allows feeding a custom time for unit tests by overriding osmo_gettimeofday. Change-Id: Ic7a81a6eb51f27fe452962b91f2eae2070d87089
* timer_test: remove unused precision values and confusing logNeels Hofmeyr2016-09-221-7/+1
| | | | Change-Id: I1570b7096c757d63d23e0950feeeb7230f8a5c9f
* timer_test: also report early finishes, report timing on errorNeels Hofmeyr2016-09-221-4/+18
| | | | | | | | When a timer was late, show the timing details. Also count whether timers fired early, for completeness' sake. Change-Id: Id3942637d77a28b5092ffffcc3e6d9d67c2b8e68
* fix timer_test: don't forget to set tv_usec on the stop timeNeels Hofmeyr2016-09-221-0/+1
| | | | | | | | | | The timer_test schedules timers and records the desired stop time. Also store the usec value of the desired stop time, because scheduling at e.g. sec N usec 999999 but recording sec N usec 0, and then receiving a timer at sec N+1 usec 0 is only 1 usec late, but records as 1000000 usecs late. This might have been the main cause of the timer test not working well on the osmocom build server. Change-Id: I13bb60f7d341a397f95d13d9c63c40188b6cd5a0
* tests: Fix warningsJacob Erlbeck2013-10-081-1/+1
| | | | | | This fixes warnings that are raised by missing includes, missing casts, missing return statements, using printf %lu with uint64_t, and unused symbols.
* tests/timer: tweak path to config.hAlex Badea2013-01-061-1/+1
| | | | | | | | | When building out-of-srcdir, "../../config.h" fails to reach config.h because the compiler is invoked in $builddir/tests/, not $builddir/tests/timer/. Use "../config.h" instead; this also works for in-srcdir builds. Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
* Add missing includes to timer_test.c and osmo-auc-gen.cHarald Welte2012-08-021-0/+1
| | | | | | This fixes the build with -Werror-implicit-function-declaration. taken from malformatted patch of Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
* timer: Increase the imprecision we accept in this testHolger Hans Peter Freyther2012-04-051-1/+1
| | | | | | On a loaded server we might not be able to reach 10ms precision in the test configuration and this is not a high precision timer anyway.
* tests: timer: set maximum wait time to obtain test resultsPablo Neira Ayuso2011-11-141-0/+19
| | | | | | | | If the timer test takes more than 2 * (number of steps + 10), we abort the test. This calculation is based on the maximum timeout randomly set (10 seconds) plus the number of steps (some existing timers may be reset in each step). We double this to have some extra grace time to finish.
* tests: timer: use stderr for non-repeatable outputPablo Neira Ayuso2011-11-141-8/+9
| | | | | | | | This makes happy gnu-autotest for the timer test. We may still may fail if we run the test on a very heavy loaded system, but given the amount of timers that we using for the automatic test (only 32), this seems very unlikely to me.
* tests: timer: add parameter to select the number of stepsPablo Neira Ayuso2011-11-141-3/+22
| | | | | | | Holger likes having a parameter to set the number of steps in this test. Now you can set it via `-s' option. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
* tests: add new torture test for timer infrastructurePablo Neira Ayuso2011-10-171-33/+108
| | | | | | | | | | | | | | | | This is a new test for the timer infrastructure. It basically consists of adding 2^N timers per step (where N is the number of step) that expire in (random() % 10) + 1 seconds. Moreover, we randomly delete timers that fulfill (random() % 100) < 10 everytime one timer expires. The default number of steps is 16, the test also allows to check for timer imprecisions (currently, defaulting to 10ms as aceptable). The list-based implementation crashes or it seems loop forever with this test (I guess due to some memory corruption). BTW, this patch contains one cosmetic clean up since we go back to 8-chars per indentations, which seems to be the policy in osmocom.
* select: use namespace prefix osmo_fd* and osmo_select*Pablo Neira Ayuso2011-05-071-1/+1
| | | | | | | | | Summary of changes: s/struct bsc_fd/struct osmo_fd/g s/bsc_register_fd/osmo_fd_register/g s/bsc_unregister_fd/osmo_fd_unregister/g s/bsc_select_main/osmo_select_main/g
* timer: use namespace prefix osmo_timer*Pablo Neira Ayuso2011-05-071-8/+8
| | | | | | | | | | | | | | Summary of changes: s/struct timer_list/struct osmo_timer_list/g s/bsc_add_timer/osmo_timer_add/g s/bsc_schedule_timer/osmo_timer_schedule/g s/bsc_del_timer/osmo_timer_del/g s/bsc_timer_pending/osmo_timer_pending/g s/bsc_nearest_timer/osmo_timers_nearest/g s/bsc_prepare_timers/osmo_timers_prepare/g s/bsc_update_timers/osmo_timers_update/g s/bsc_timer_check/osmo_timers_check/g
* include: reorganize headers file to include/osmocom/[gsm|core]Pablo Neira Ayuso2011-03-231-2/+2
| | | | | | | | | | | | This patch moves all GSM-specific definitions to include/osmocom/gsm. Moreover, the headers in include/osmocore/ have been moved to include/osmocom/core. This has been proposed by Harald Welte and Sylvain Munaunt. Tested with `make distcheck'. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
* [timer] Fix compile warning of the timer testHolger Hans Peter Freyther2010-02-261-2/+3
|
* fix config.h directoryHarald Welte2010-02-201-1/+1
|
* intial checkin of the libosmocore projectHarald Welte2010-02-201-0/+76