diff --git a/test/validate/Makefile b/test/validate/Makefile index 4cac5ccb04a419cd7e7d6632dd757833dfff8ec6..e83c35c6f8f0e04c7c3a364ce6947e0f27f8af05 100644 --- a/test/validate/Makefile +++ b/test/validate/Makefile @@ -51,6 +51,7 @@ REGRESSION_TESTS_WITHOUT_DB += safeModeNotAssigned REGRESSION_TESTS_WITHOUT_DB += safeMonitor REGRESSION_TESTS_WITHOUT_DB += sizeof REGRESSION_TESTS_WITHOUT_DB += userfunc +REGRESSION_TESTS_WITHOUT_DB += userfuncEf REGRESSION_TESTS_REMOTE_ONLY += pvGetSync diff --git a/test/validate/userfuncEf.st b/test/validate/userfuncEf.st new file mode 100644 index 0000000000000000000000000000000000000000..84c2f98d2d5e1bdf3f955394d3eef26b6d2e287a --- /dev/null +++ b/test/validate/userfuncEf.st @@ -0,0 +1,54 @@ +/*************************************************************************\ +Copyright (c) 2010-2012 Helmholtz-Zentrum Berlin f. Materialien + und Energie GmbH, Germany (HZB) +This file is distributed subject to a Software License Agreement found +in the file LICENSE that is included with this distribution. +\*************************************************************************/ +program userfuncEfTest + +%%#include "../testSupport.h" + +option +s; + +evflag x; + +%{ +static void efSet_x(SS_ID ssId, EV_ID x) +{ + seq_efSet(ssId, x); +} +}% + +foreign pVar, ssId; + +entry { + seq_test_init(2); +} + +ss myss { + state check_not_set { + when (efTestAndClear(x)) { + testFail("argh, no timeout!"); + } state set + when (delay(0.5)) { + testPass("cool, we came here"); + } state set + } + state set { + when () { + efSet_x(ssId(), x); + } state check_set + } + state check_set { + when (efTestAndClear(x)) { + testPass("cool, we came here"); + } exit + when (delay(0.5)) { + testFail("argh, timeout!"); + } exit + } +} + +exit { + seq_test_done(); +}