@@ -804,7 +804,7 @@ pa_activity (TestLifecycle, pa_ctx(pa_co_res(2); pa_use(TestLifecycleBody); pa_u
804804
805805// Signal Tests
806806
807- pa_activity (TestSignalsBodySub, pa_ctx(), pa_signal & s1, pa_signal & s2) {
807+ pa_activity (TestSignalsBodySub, pa_ctx(), pa_sig & s1, pa_sig & s2) {
808808 assert (!s1); assert (!s2);
809809 pa_pause;
810810
@@ -817,8 +817,8 @@ pa_activity (TestSignalsBodySub, pa_ctx(), pa_signal& s1, pa_signal& s2) {
817817 pa_pause;
818818} pa_end
819819
820- pa_activity (TestSignalsBody, pa_ctx(pa_enter_res ; pa_use(TestSignalsBodySub);
821- pa_def_signal (s1); pa_def_signal (s2))) {
820+ pa_activity (TestSignalsBody, pa_ctx(pa_sig_res ; pa_use(TestSignalsBodySub);
821+ pa_def_sig (s1); pa_def_sig (s2))) {
822822 assert (!pa_self.s1 ); assert (!pa_self.s2 );
823823 pa_pause;
824824
@@ -830,7 +830,7 @@ pa_activity (TestSignalsBody, pa_ctx(pa_enter_res; pa_use(TestSignalsBodySub);
830830 assert (!pa_self.s1 ); assert (!pa_self.s2 );
831831 pa_pause;
832832
833- pa_run (TestSignalsBodySub, pa_self.s1 , pa_self.s1 );
833+ pa_run (TestSignalsBodySub, pa_self.s1 , pa_self.s2 );
834834} pa_end
835835
836836pa_activity (TestSignals, pa_ctx_tm(pa_use(TestSignalsBody))) {
@@ -840,6 +840,48 @@ pa_activity (TestSignals, pa_ctx_tm(pa_use(TestSignalsBody))) {
840840 pa_run (TestSignalsBody); // Test re-invocation after abort
841841} pa_end
842842
843+ #if __cplusplus >= 201703L
844+
845+ pa_activity (TestValSignalsBodySub, pa_ctx(), pa_val_sig<int>& s1, pa_val_sig<float>& s2) {
846+ assert (!s1); assert (!s2);
847+ pa_pause;
848+
849+ assert (!s1); assert (!s2);
850+ pa_emit_val (s1, 42 ); pa_emit_val (s2, 3 .14f );
851+ assert (s1); assert (s2);
852+ assert (s1.val () == 42 ); assert (s2.val () != 0 .0f );
853+ pa_pause;
854+
855+ assert (!s1); assert (!s2);
856+ pa_pause;
857+ } pa_end
858+
859+ pa_activity (TestValSignalsBody, pa_ctx(pa_sig_res; pa_use(TestValSignalsBodySub);
860+ pa_def_val_sig (int , s1); pa_def_val_sig(float , s2))) {
861+ assert (!pa_self.s1 ); assert (!pa_self.s2 );
862+ pa_pause;
863+
864+ assert (!pa_self.s1 ); assert (!pa_self.s2 );
865+ pa_emit_val (pa_self.s1 , 42 ); pa_emit_val (pa_self.s2 , 3 .14f );
866+ assert (pa_self.s1 ); assert (pa_self.s2 );
867+ assert (pa_self.s1 .val () == 42 ); assert (pa_self.s2 .val () != 0 .0f );
868+ pa_pause;
869+
870+ assert (!pa_self.s1 ); assert (!pa_self.s2 );
871+ pa_pause;
872+
873+ pa_run (TestValSignalsBodySub, pa_self.s1 , pa_self.s2 );
874+ } pa_end
875+
876+ pa_activity (TestValSignals, pa_ctx_tm(pa_use(TestValSignalsBody))) {
877+ pa_run (TestValSignalsBody);
878+ pa_run (TestValSignalsBody); // Test re-invocation
879+ pa_after_abort (2 , TestValSignalsBody);
880+ pa_run (TestValSignalsBody); // Test re-invocation after abort
881+ } pa_end
882+
883+ #endif
884+
843885} // namespace tests
844886
845887// Test Driver
@@ -861,6 +903,9 @@ int main(int argc, char* argv[]) {
861903 run_test (tests, TestEvery);
862904 run_test (tests, TestLifecycle);
863905 run_test (tests, TestSignals);
906+ #if __cplusplus >= 201703L
907+ run_test (tests, TestValSignals);
908+ #endif
864909
865910 std::cout << " Done" << std::endl;
866911
0 commit comments