path: root/tests/timer/timer_test.c
AgeCommit message (Collapse)AuthorFilesLines
2017-05-09timer: add osmo_timer_setup()Pablo Neira Ayuso1-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
2016-09-22timer_test: set 8 as default steps, use the default in testsuite.atNeels Hofmeyr1-1/+1
Change-Id: I5070578e9fe2bdacaad000eaafb8dc5f549d6f3e
2016-09-22timer_test: print more details to stdout to checkNeels Hofmeyr1-3/+18
The test is now fully deterministic, so include all detail in stdout, to check for. Change-Id: Iecf6387f1d25253fcf1260777673853030c1d326
2016-09-22timer_test: redirect some output from stderr to stdoutNeels Hofmeyr1-20/+18
This way we can check the output in timer_test.ok. Change-Id: Ia3bba1c650be3558d370e0f59d4ee7f36ef97506
2016-09-22timer_test: remove all random elementsNeels Hofmeyr1-3/+6
Change-Id: I9833031407e99f5d7a1144c26b68a7e320b2020d
2016-09-22timer_test: do not use real time: deterministic and fasterNeels Hofmeyr1-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
2016-09-22add osmo_gettimeofday as a shim around gettimeofdayNeels Hofmeyr1-2/+2
This allows feeding a custom time for unit tests by overriding osmo_gettimeofday. Change-Id: Ic7a81a6eb51f27fe452962b91f2eae2070d87089
2016-09-22timer_test: remove unused precision values and confusing logNeels Hofmeyr1-7/+1
Change-Id: I1570b7096c757d63d23e0950feeeb7230f8a5c9f
2016-09-22timer_test: also report early finishes, report timing on errorNeels Hofmeyr1-4/+18
When a timer was late, show the timing details. Also count whether timers fired early, for completeness' sake. Change-Id: Id3942637d77a28b5092ffffcc3e6d9d67c2b8e68
2016-09-22fix timer_test: don't forget to set tv_usec on the stop timeNeels Hofmeyr1-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
2013-10-08tests: Fix warningsJacob Erlbeck1-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.
2013-01-06tests/timer: tweak path to config.hAlex Badea1-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>
2012-08-02Add missing includes to timer_test.c and osmo-auc-gen.cHarald Welte1-0/+1
This fixes the build with -Werror-implicit-function-declaration. taken from malformatted patch of Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
2012-04-05timer: Increase the imprecision we accept in this testHolger Hans Peter Freyther1-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.
2011-11-14tests: timer: set maximum wait time to obtain test resultsPablo Neira Ayuso1-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.
2011-11-14tests: timer: use stderr for non-repeatable outputPablo Neira Ayuso1-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.
2011-11-14tests: timer: add parameter to select the number of stepsPablo Neira Ayuso1-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>
2011-10-17tests: add new torture test for timer infrastructurePablo Neira Ayuso1-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.
2011-05-07select: use namespace prefix osmo_fd* and osmo_select*Pablo Neira Ayuso1-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
2011-05-07timer: use namespace prefix osmo_timer*Pablo Neira Ayuso1-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
2011-03-23include: reorganize headers file to include/osmocom/[gsm|core]0.2.0Pablo Neira Ayuso1-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>
2010-02-26[timer] Fix compile warning of the timer testHolger Hans Peter Freyther1-2/+3
2010-02-20fix config.h directoryHarald Welte1-1/+1
2010-02-20intial checkin of the libosmocore projectHarald Welte1-0/+76