From b418faf8dce3b33a084ff7d9f2ff28f30933e873 Mon Sep 17 00:00:00 2001 From: Trevor Pering Date: Mon, 1 Apr 2024 21:05:38 -0700 Subject: [PATCH 1/3] Tweak for testing excessive writeback states --- etc/test_itemized.in | 1 + .../src/main/java/daq/pubber/PointsetManager.java | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/etc/test_itemized.in b/etc/test_itemized.in index e9960f6c8e..a3fb974ed6 100644 --- a/etc/test_itemized.in +++ b/etc/test_itemized.in @@ -5,6 +5,7 @@ TEST pointset_remove_point noState TEST too_much_state spamState TEST feature_enumeration featureEnableSwap TEST valid_serial_no noLastStart +TEST writeback_success extraPoint=filter_differential_pressure_setpoint TEST writeback_success noWriteback TEST writeback_success noPointState TEST pointset_publish_interval fixedSampleRate=10 diff --git a/pubber/src/main/java/daq/pubber/PointsetManager.java b/pubber/src/main/java/daq/pubber/PointsetManager.java index e1fc5fb972..1e86aae3d3 100644 --- a/pubber/src/main/java/daq/pubber/PointsetManager.java +++ b/pubber/src/main/java/daq/pubber/PointsetManager.java @@ -7,6 +7,7 @@ import static com.google.udmi.util.GeneralUtils.ifNotTrueThen; import static com.google.udmi.util.GeneralUtils.ifNullThen; import static com.google.udmi.util.GeneralUtils.ifTrueGet; +import static com.google.udmi.util.GeneralUtils.ifTrueThen; import static java.lang.String.format; import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNullElseGet; @@ -28,6 +29,7 @@ import udmi.schema.PointPointsetEvent; import udmi.schema.PointPointsetModel; import udmi.schema.PointPointsetState; +import udmi.schema.PointPointsetState.Value_state; import udmi.schema.PointsetConfig; import udmi.schema.PointsetEvent; import udmi.schema.PointsetModel; @@ -139,11 +141,19 @@ private void restorePoint(String pointName) { } pointsetState.points.put(pointName, ifNotNullGet(managedPoints.get(pointName), - AbstractPoint::getState, invalidPoint(pointName))); + this::getTweakedPointState, invalidPoint(pointName))); pointsetEvent.points.put(pointName, ifNotNullGet(managedPoints.get(pointName), AbstractPoint::getData, new PointPointsetEvent())); } + private PointPointsetState getTweakedPointState(AbstractPoint point) { + PointPointsetState state = point.getState(); + // Tweak for testing: erroneously apply an applied state here. + ifTrueThen(point.getName().equals(options.extraPoint), + () -> state.value_state = ofNullable(state.value_state).orElse(Value_state.APPLIED)); + return state; + } + private void suspendPoint(String pointName) { pointsetState.points.remove(pointName); pointsetEvent.points.remove(pointName); @@ -172,7 +182,7 @@ private void updateState(AbstractPoint point) { } if (point.isDirty()) { - PointPointsetState state = point.getState(); // Always call to clear the dirty bit + PointPointsetState state = getTweakedPointState(point); // Always call to clear the dirty bit PointPointsetState useState = ifTrueGet(options.noPointState, PointPointsetState::new, state); pointsetState.points.put(pointName, useState); updateState(); From a7245f076450e7339ea4779fc28aaf92e1c9178f Mon Sep 17 00:00:00 2001 From: Trevor Pering Date: Mon, 1 Apr 2024 21:13:26 -0700 Subject: [PATCH 2/3] Fix expected out --- etc/test_itemized.out | 55 ++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/etc/test_itemized.out b/etc/test_itemized.out index 111aca0fd2..5d2a0e59f4 100644 --- a/etc/test_itemized.out +++ b/etc/test_itemized.out @@ -5,34 +5,35 @@ 05 RESULT fail system too_much_state ALPHA 0/5 Failed check that No more than 6 state updates in 60s 06 RESULT fail enumeration.features feature_enumeration PREVIEW 0/5 Failed check that feature enumeration matches metadata; missing { enumeration }, extra { unknown } 07 RESULT pass system valid_serial_no BETA 5/5 Sequence complete -08 RESULT fail writeback writeback_success ALPHA 0/5 Because point filter_differential_pressure_setpoint is null, expected applied +08 RESULT fail writeback writeback_success ALPHA 0/5 Because point filter_differential_pressure_setpoint is applied, expected null 09 RESULT fail writeback writeback_success ALPHA 0/5 Because point filter_differential_pressure_setpoint is null, expected applied -10 RESULT fail pointset pointset_publish_interval BETA 0/5 Failed check that time period between successive pointset events is between 5 and 8 seconds -11 RESULT fail system.mode system_mode_restart ALPHA 0/5 Failed check that restart count increased by one -12 RESULT fail system config_logging BETA 0/5 Bad message version string 1.4. -13 CPBLTY pass system broken_config.logging ALPHA 1/1 Capability supported -13 RESULT fail system broken_config BETA 0/5 Because no status to report +10 RESULT fail writeback writeback_success ALPHA 0/5 Because point filter_differential_pressure_setpoint is null, expected applied +11 RESULT fail pointset pointset_publish_interval BETA 0/5 Failed check that time period between successive pointset events is between 5 and 8 seconds +12 RESULT fail system.mode system_mode_restart ALPHA 0/5 Failed check that restart count increased by one +13 RESULT fail system config_logging BETA 0/5 Bad message version string 1.4. 14 CPBLTY pass system broken_config.logging ALPHA 1/1 Capability supported -14 RESULT pass system broken_config BETA 5/5 Sequence complete -15 CPBLTY skip system broken_config.logging ALPHA 0/0 Never executed -15 RESULT fail system broken_config BETA 0/4 Timeout waiting for initial device state -16 CPBLTY fail system broken_config.logging ALPHA 0/1 While log category `system.config.apply` level `NOTICE` to be logged -16 RESULT pass system broken_config BETA 4/5 Sequence complete -17 CPBLTY fail system broken_config.logging ALPHA 0/1 While log category `system.config.receive` level `DEBUG` to be logged -17 RESULT fail system broken_config BETA 0/5 expected: but was: -18 CPBLTY pass system system_last_update.subblocks ALPHA 1/1 Capability supported -18 RESULT pass system system_last_update STABLE 6/6 Sequence complete +14 RESULT fail system broken_config BETA 0/5 Because no status to report +15 CPBLTY pass system broken_config.logging ALPHA 1/1 Capability supported +15 RESULT pass system broken_config BETA 5/5 Sequence complete +16 CPBLTY skip system broken_config.logging ALPHA 0/0 Never executed +16 RESULT fail system broken_config BETA 0/4 Timeout waiting for initial device state +17 CPBLTY fail system broken_config.logging ALPHA 0/1 While log category `system.config.apply` level `NOTICE` to be logged +17 RESULT pass system broken_config BETA 4/5 Sequence complete +18 CPBLTY fail system broken_config.logging ALPHA 0/1 While log category `system.config.receive` level `DEBUG` to be logged +18 RESULT fail system broken_config BETA 0/5 expected: but was: 19 CPBLTY pass system system_last_update.subblocks ALPHA 1/1 Capability supported 19 RESULT pass system system_last_update STABLE 6/6 Sequence complete -20 RESULT fail system state_make_model BETA 0/5 Failed check that no significant system status exists; deviceState.system not defined -24 RESULT skip system valid_serial_no BETA 0/0 State testing disabled -25 CPBLTY skip system system_last_update.subblocks ALPHA 0/0 Never executed -25 RESULT skip system system_last_update STABLE 0/0 State testing disabled -26 RESULT fail system system_min_loglevel ALPHA 0/5 Received state update with no-state device -27 RESULT pass system system_min_loglevel ALPHA 5/5 Sequence complete -31 RESULT pass gateway gateway_proxy_events BETA 5/5 Sequence complete -32 RESULT fail gateway gateway_proxy_events BETA 0/5 Timeout waiting for Missing data from AHU-22 -36 RESULT pass gateway gateway_proxy_events BETA 5/5 Sequence complete -37 RESULT fail gateway gateway_proxy_events BETA 0/5 Received state update with no-state device -41 RESULT skip system device_config_acked BETA 0/0 No config check for proxy device -42 RESULT pass gateway bad_target_family PREVIEW 5/5 Sequence complete +20 CPBLTY pass system system_last_update.subblocks ALPHA 1/1 Capability supported +20 RESULT pass system system_last_update STABLE 6/6 Sequence complete +21 RESULT fail system state_make_model BETA 0/5 Failed check that no significant system status exists; deviceState.system not defined +25 RESULT skip system valid_serial_no BETA 0/0 State testing disabled +26 CPBLTY skip system system_last_update.subblocks ALPHA 0/0 Never executed +26 RESULT skip system system_last_update STABLE 0/0 State testing disabled +27 RESULT fail system system_min_loglevel ALPHA 0/5 Received state update with no-state device +28 RESULT pass system system_min_loglevel ALPHA 5/5 Sequence complete +32 RESULT pass gateway gateway_proxy_events BETA 5/5 Sequence complete +33 RESULT fail gateway gateway_proxy_events BETA 0/5 Timeout waiting for Missing data from AHU-22 +37 RESULT pass gateway gateway_proxy_events BETA 5/5 Sequence complete +38 RESULT fail gateway gateway_proxy_events BETA 0/5 Received state update with no-state device +42 RESULT skip system device_config_acked BETA 0/0 No config check for proxy device +43 RESULT pass gateway bad_target_family PREVIEW 5/5 Sequence complete From 4d9bda681335df92a3e546f91769b85259511293 Mon Sep 17 00:00:00 2001 From: Trevor Pering Date: Mon, 1 Apr 2024 21:50:26 -0700 Subject: [PATCH 3/3] Adjusting itemized out --- etc/schema_itemized.out | 55 +++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/etc/schema_itemized.out b/etc/schema_itemized.out index 9ca3cbdf7f..4df0f3079c 100644 --- a/etc/schema_itemized.out +++ b/etc/schema_itemized.out @@ -9,33 +9,34 @@ 07 valid_serial_no RESULT pass schemas state_update_beta BETA 5/5 Schema validation passed 08 writeback_success 09 writeback_success -10 pointset_publish_interval -11 system_mode_restart -12 config_logging -13 broken_config -14 broken_config RESULT pass schemas device_state_beta BETA 5/5 Schema validation passed -14 broken_config RESULT pass schemas event_system_beta BETA 5/5 Schema validation passed -14 broken_config RESULT pass schemas state_update_beta BETA 5/5 Schema validation passed -15 broken_config -16 broken_config RESULT pass schemas device_state_beta BETA 5/5 Schema validation passed -16 broken_config RESULT pass schemas event_system_beta BETA 5/5 Schema validation passed -16 broken_config RESULT pass schemas state_update_beta BETA 5/5 Schema validation passed -17 broken_config -18 system_last_update RESULT fail schemas state_update_stable STABLE 5/5 Schema violations found -18 system_last_update RESULT pass schemas device_state_stable STABLE 5/5 Schema validation passed -18 system_last_update RESULT pass schemas event_system_stable STABLE 5/5 Schema validation passed -19 system_last_update RESULT fail schemas device_state_stable STABLE 5/5 Schema violations found +10 writeback_success +11 pointset_publish_interval +12 system_mode_restart +13 config_logging +14 broken_config +15 broken_config RESULT pass schemas device_state_beta BETA 5/5 Schema validation passed +15 broken_config RESULT pass schemas event_system_beta BETA 5/5 Schema validation passed +15 broken_config RESULT pass schemas state_update_beta BETA 5/5 Schema validation passed +16 broken_config +17 broken_config RESULT pass schemas device_state_beta BETA 5/5 Schema validation passed +17 broken_config RESULT pass schemas event_system_beta BETA 5/5 Schema validation passed +17 broken_config RESULT pass schemas state_update_beta BETA 5/5 Schema validation passed +18 broken_config +19 system_last_update RESULT fail schemas state_update_stable STABLE 5/5 Schema violations found +19 system_last_update RESULT pass schemas device_state_stable STABLE 5/5 Schema validation passed 19 system_last_update RESULT pass schemas event_system_stable STABLE 5/5 Schema validation passed -19 system_last_update RESULT pass schemas state_update_stable STABLE 5/5 Schema validation passed -20 state_make_model -24 valid_serial_no -25 system_last_update -26 system_min_loglevel -27 system_min_loglevel RESULT pass schemas device_state_alpha ALPHA 5/5 Schema validation passed -27 system_min_loglevel RESULT pass schemas event_system_alpha ALPHA 5/5 Schema validation passed -31 gateway_proxy_events +20 system_last_update RESULT fail schemas device_state_stable STABLE 5/5 Schema violations found +20 system_last_update RESULT pass schemas event_system_stable STABLE 5/5 Schema validation passed +20 system_last_update RESULT pass schemas state_update_stable STABLE 5/5 Schema validation passed +21 state_make_model +25 valid_serial_no +26 system_last_update +27 system_min_loglevel +28 system_min_loglevel RESULT pass schemas device_state_alpha ALPHA 5/5 Schema validation passed +28 system_min_loglevel RESULT pass schemas event_system_alpha ALPHA 5/5 Schema validation passed 32 gateway_proxy_events -36 gateway_proxy_events +33 gateway_proxy_events 37 gateway_proxy_events -41 device_config_acked -42 bad_target_family +38 gateway_proxy_events +42 device_config_acked +43 bad_target_family