From 7a547c9c487cb42b1d7b4dadf144bad5ceab0287 Mon Sep 17 00:00:00 2001 From: Tester23 <85486843+openshwprojects@users.noreply.github.com> Date: Sun, 4 Jan 2026 18:23:09 +0100 Subject: [PATCH] self test for user case with conditional in change handler --- src/selftest/selftest_if.c | 19 +++++++++++++++++++ src/win_main.c | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/selftest/selftest_if.c b/src/selftest/selftest_if.c index 27c7df625..0effe46e4 100644 --- a/src/selftest/selftest_if.c +++ b/src/selftest/selftest_if.c @@ -87,6 +87,25 @@ void Test_Command_If() { SELFTEST_ASSERT_CHANNEL(23, 1234); SELFTEST_ASSERT_CHANNEL(24, 4567); SELFTEST_ASSERT_CHANNEL(25, 6789); + + + CMD_ExecuteCommand("setChannel 11 0", 0); + CMD_ExecuteCommand("setChannel 8 0", 0); + CMD_ExecuteCommand("setChannel 6 0", 0); + SELFTEST_ASSERT_CHANNEL(11, 0); + SELFTEST_ASSERT_CHANNEL(8, 0); + SELFTEST_ASSERT_CHANNEL(6, 0); + CMD_ExecuteCommand("addChangeHandler Channel8 == 1 if $CH6==1 then \"setChannel 11 1\"", 0); + CMD_ExecuteCommand("setChannel 8 1", 0); + SELFTEST_ASSERT_CHANNEL(11, 0); + SELFTEST_ASSERT_CHANNEL(8, 1); + CMD_ExecuteCommand("setChannel 8 0", 0); + SELFTEST_ASSERT_CHANNEL(8, 0); + SELFTEST_ASSERT_CHANNEL(11, 0); + CMD_ExecuteCommand("setChannel 6 1", 0); + CMD_ExecuteCommand("setChannel 8 1", 0); + SELFTEST_ASSERT_CHANNEL(11, 1); + SELFTEST_ASSERT_CHANNEL(8, 1); // cause error //SELFTEST_ASSERT_CHANNEL(1, 666); } diff --git a/src/win_main.c b/src/win_main.c index a618193e1..24d1a6fba 100644 --- a/src/win_main.c +++ b/src/win_main.c @@ -203,6 +203,7 @@ void Win_DoUnitTests() { // SELFTEST_ASSERT_EXPRESSION("sqrt(4)", 2) + Test_Command_If(); Test_MQTT(); Test_HTTP_Client(); // Test_PartitionSearch(); @@ -289,7 +290,6 @@ void Win_DoUnitTests() Test_LEDDriver(); Test_LFS(); Test_Scripting(); - Test_Command_If(); Test_Tokenizer(); Test_Http(); Test_Http_LED();