Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FeatureStage annotation for tests #547

Merged
merged 23 commits into from
Dec 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions .gencode_hash.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
b35646a2f3d7c30fd34e3ea6ab6a1070b39c469fd1de49cab1093ff32faaf06d gencode/docs/command_discovery.html
3e292717e9b220403c250eebcfb4132becb6f59546f0bd3c3ec3042c31986d48 gencode/docs/command_mapping.html
09314ba0d8128d946ac491741fa422821b7a9b4c30fcb2016a60491774f9c079 gencode/docs/config.html
ca860612da2fddd2747d5a1f765efe9205be37b0ad4b327052320f915eb17948 gencode/docs/config.html
73b3beb740f5bc3ff26d173c356b2d3bf3b9892be83a704d3eeee7c9ff030230 gencode/docs/config_mapping.html
b12d1fd583bc750b99aa343beea680d08fdc0110c6da8684cee24800c8cfaea0 gencode/docs/configuration_endpoint.html
b7ca70e3176f997f254c32bd8d53dff1462ac8a71c0e166aaa85193d67bff60b gencode/docs/configuration_execution.html
4ac5b147d64b5a10408649dec791ac3b4d55a4c45f3f63489e1a980dbb1c4293 gencode/docs/configuration_pubber.html
0f0355e343cb8197dfbae1481c0eca3a0566d73181bc968e33fd469a1c94d1e6 gencode/docs/envelope.html
a7c3d3dc001a48f6a3c99e5e8d3456c15370b302fb74245629369297fc2cb329 gencode/docs/event.html
7ee4dd41f7480563a6a07ff49f1beabb3819ef6e8e7e44b07217760984933c8a gencode/docs/event_discovery.html
490e684c7710138b6c9fd41b131acf6638df64d715e35c799bd95a06756b7d87 gencode/docs/event.html
e81e06349dd9d88a57d7f6119da1fee2832b07fe8190b6df139e26777e7e76bc gencode/docs/event_discovery.html
9497b83603d537e11e264ee2d8056b298f5a5178e2c6aa435a6c9c0a051414b4 gencode/docs/event_mapping.html
71fe25d3b17d1dc87b52c049a3235c20527f73e12ffa53fa4800a15e53f73732 gencode/docs/event_pointset.html
3851c5c20c1938a14e21d7a4e329377b4582b7f88f1b18c0e9b34656e316e35e gencode/docs/event_system.html
Expand All @@ -21,7 +21,7 @@ f01a413b528783682ecbc3b846d677490aa1e0a0cf15867e2305cee60a1f4a8e gencode/docs/p
741b880216be3743f6747800a042f2dbd89f3b0344c6b0a965f4bc010f03a930 gencode/docs/schema_doc.css
878ea88206c974f40643c3cc430875f9c4e8c5e3fd6bcd6358bd3eb6d48699a9 gencode/docs/schema_doc.min.js
7ed934930aee763e0beebc349725ba3909115e8d346bb762f28bcbe745bb163a gencode/docs/schema_extras.js
803edd1b2b0dd305dde20fe4b6d6a4163d0eb2f35a9fe81817b41db83491f679 gencode/docs/state.html
a63c6d5ab8e3fd869d584578b5a850a86e43247f860d2830a4565da83f25b3e1 gencode/docs/state.html
f10172c9b4cd350cae1f673077b07b1362168599b966a78d4ec4ef19b7bbf441 gencode/docs/state_mapping.html
552f85739f547960d2c1b96c99152ff831a036ce4d19908a5361b35a2d5f2132 gencode/docs/state_validation.html
d39d7fe37a41c74a40080af7b0a429d201ab1fdff7444428c4b98eb7b38c332b gencode/java/udmi/schema/Asset.java
Expand All @@ -42,18 +42,19 @@ cf9762392e02b5d04c6498963222cc0c00f7be6c3cd82bde3d063a5eceba2b65 gencode/java/u
42e1f71656b94a2a47c3bd084e970604fbb953dc50bd74fcced7ea06adf4d2c2 gencode/java/udmi/schema/DevicePersistent.java
d4a82e132b2d223c4a82384d22455283c0b64aba3100fc210e72f9700b9df2d0 gencode/java/udmi/schema/DeviceValidationEvent.java
587d67a67431349939dffd37b880c44e798a1eb607d54bd6d8a077bbac668067 gencode/java/udmi/schema/DiscoveryCommand.java
d8a80ab3180d33bfa17564c969018e1d4350a47dbc70c4ae8a5abbfb25cfedc9 gencode/java/udmi/schema/DiscoveryConfig.java
4793b2370b1f3b8fd89941586b779dffdde83d321a2621907f67d4d297d19b17 gencode/java/udmi/schema/DiscoveryEvent.java
e809df42a73ed843977e447fa3333140dcdbe7d09b4e88bf1b8fd52fbaf9ae1a gencode/java/udmi/schema/DiscoveryConfig.java
fc008058938cc9b3f8a37a176462b6b4ef8fefa1d2a24635f014d3d1701caa78 gencode/java/udmi/schema/DiscoveryEvent.java
04112dd47b0f761131c276c67d3cd8b789d25e6716b5732be9fef14fc6831f1d gencode/java/udmi/schema/DiscoveryModel.java
9962b0eb7d5adf52af6160e9f3131f8eeb52ae9e518954dbb6aead1bcad0245e gencode/java/udmi/schema/DiscoveryState.java
0a11a539707571f79bd82b1958886cecae3209e2daef36dfca885adb4c61a07a gencode/java/udmi/schema/DiscoveryState.java
b2ff54db5400f4aa8112b04532c8ac951c176e49ee625921aba023f0b40478f4 gencode/java/udmi/schema/EndpointConfiguration.java
dd2eb479a8e93a851c535c8b40fbd62e152bd60e0473f3b23800ec61f798bed0 gencode/java/udmi/schema/Entry.java
06758aca1e0043ddf343b504030f47bb19260e99a82e2d66f12e86092a2434ca gencode/java/udmi/schema/Enumerate.java
017f8e237efa959b81d72f3dd2e78b915856198ceef02c041c657b30df93b7c2 gencode/java/udmi/schema/Envelope.java
e9f5c77be81486b6b8c6d88f70f2d50583d8c3fafa2ac09ead80f44b8d5e751e gencode/java/udmi/schema/Event.java
69c3c12ce057b6ab8e27ab8cab6fb009bfd1c997652214b49e6f2a26a58f302c gencode/java/udmi/schema/ExecutionConfiguration.java
2e77a29988e6c17875d3f781be931e3b835bb310639f60d3bb28f24405a86bed gencode/java/udmi/schema/FamilyDiscoveryConfig.java
ae4a645f199c8e24b3303463d428ca17af7603ae9ae9238397a6a82e752ab454 gencode/java/udmi/schema/FamilyDiscoveryEvent.java
0afc15acd72874e5a0c47f546abc0c4569f5bc37838fdcac77bc7bd55cc53a6d gencode/java/udmi/schema/FamilyDiscoveryState.java
5ad9bf328fa1500250ff8bc75f2044b3815c5c11cb368e1cc228ac8ca16639c2 gencode/java/udmi/schema/FamilyDiscoveryState.java
9959a84eea3e549c142c3edf637c86eb56eca138108ebd51fc2985e45aa41484 gencode/java/udmi/schema/FamilyDiscoveryTestingModel.java
efb376cd7a80ca74fbf74d3ef3f4101d393341a91d01db36456aa84f6be3d0a5 gencode/java/udmi/schema/FamilyLocalnetModel.java
60a8115ae1acae7c199b63180823198d38ec50d57b48dd85aca1ccc865058f85 gencode/java/udmi/schema/GatewayConfig.java
Expand Down Expand Up @@ -114,7 +115,7 @@ c5a62f92328e2ede167fc1f53bece6e48696a0ab0e37e3a41f65cd98494ba0d7 gencode/python
b975892df78076dabc797b4c0be87f20b33eacda11f9d1ac1c09be33d4937a87 gencode/python/udmi/schema/config.py
79eb0299b3751d93c01a5de65eacc717283e99caf0996f3db48a15247f69c8eb gencode/python/udmi/schema/config_blobset.py
59039eaf2812392329c641ad387f7e27790cf804fc94a014626d2da5ab426e3d gencode/python/udmi/schema/config_blobset_blob.py
ec6c6ab1fb0f37a29b7ebd162aa77da7f1e261e80da376942a3b39d17ccf1be4 gencode/python/udmi/schema/config_discovery.py
7a6411ba2646881ffad5b6ad472c980e48a11b36ab2c9c77d12608ccc7225594 gencode/python/udmi/schema/config_discovery.py
a5edb9ac5ecd5a4459f93ce613691735f299f35718f2e35410206fc91c263dd1 gencode/python/udmi/schema/config_discovery_family.py
b461bdc24310ef972faf579b5be577b5af67fb0977d6afb4c42955211b26e3d5 gencode/python/udmi/schema/config_gateway.py
8b2bf3e753c09e375f0fd59dcf1f0be61205ed247160b7a8718cb3b9ebef2c30 gencode/python/udmi/schema/config_localnet.py
Expand All @@ -130,7 +131,7 @@ e8a1574074554b6144b178d2adedc76a1c7be5ae911b253deff4460d8d82c6ee gencode/python
998ce105f88686f27b85f3630a396ed04b106f830c133a684ea5c505ca95b1c3 gencode/python/udmi/schema/envelope.py
ed8ace0196c5e99d20778cb4210aa88cfe44a5e4539af98a1e194b9a71fa538e gencode/python/udmi/schema/equipment_translation.py
1eb9019b9d0b4ff7de2df8beb625a4f89292d636ece0c02f160495c537bd6c2c gencode/python/udmi/schema/event.py
82182e3f569ad80dc0751027959c7db9135d10072fbe79f896d63a4cd2f4771f gencode/python/udmi/schema/event_discovery.py
aae3399ce27d070b553d6d1da8001ad65f61a8c1705bf2827e35b858ee637dae gencode/python/udmi/schema/event_discovery.py
ad33b91a7fabb4eed7e49c30a983a2106c96330facbe0f376f94d06e2263d6d0 gencode/python/udmi/schema/event_discovery_family.py
42e6fb6edda2b6aeae5e5b48ae66f87a5daf336bca1e746b1157e8f1ce31d5d5 gencode/python/udmi/schema/event_discovery_point.py
50bdecfa353d86d04a1ad0ebac5b3625f8fd4ee8a1e2f8e51b29055a37d9685c gencode/python/udmi/schema/event_mapping.py
Expand Down Expand Up @@ -162,7 +163,7 @@ a58f8c98e837a5b56126ca0f410e02f1e9cfcd80a8cb429e0ef522defab1f690 gencode/python
32bc70a30e37e89cfae14b44add18d546a6f9e00a3ec3519ede9c7486114d39c gencode/python/udmi/schema/state.py
4a908cee3fb8afb559bcbfa594e57dbc515a35e4468e02600751b2fcce05a238 gencode/python/udmi/schema/state_blobset.py
b7f07c4a74dcd5262cb3eb817cc568f73efd253c3ae5be44620a0204507105a6 gencode/python/udmi/schema/state_blobset_blob.py
26443a1f6d0be3469ff93aa7fdb4e6682e0439a3b29a8e237998dcebec5f6901 gencode/python/udmi/schema/state_discovery.py
8c6fc5fd63ab50768cb3662228ed893eb8b9d563cd062efaed12f5079a652d0c gencode/python/udmi/schema/state_discovery.py
187400078dfc89912062ca1ad92f61e32d28126ae56119d83e6767d58cda1117 gencode/python/udmi/schema/state_discovery_family.py
05e82aa15c64842e206ae8ce3d5810d115bb890d009ea5d657822fad0e0d2165 gencode/python/udmi/schema/state_gateway.py
cb6a5558fe87dea5bce9e1cc6b22984a7d8c379babc4941c50df13edad36579a gencode/python/udmi/schema/state_mapping.py
Expand Down
5 changes: 5 additions & 0 deletions bin/gencode_seq
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ SEQUENCE_MD=docs/specs/sequences/generated.md

# Create doc of generated sequence steps
prefix=sites/udmi_site_model/out/devices/AHU-1/tests

# Remove test runs that are from unit testing
rm -rf $prefix/test_*

if [[ -d $prefix ]]; then
echo Updating $SEQUENCE_MD from $prefix:

Expand Down Expand Up @@ -38,6 +42,7 @@ if [[ -d $prefix ]]; then
fi
echo " $name"
cat $prefix/$sequence >> $SEQUENCE_MD
mkdir -p validator/sequences/$directory
cp $prefix/$sequence validator/sequences/$directory/
done
else
Expand Down
1 change: 1 addition & 0 deletions bin/sequencer
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
ROOT_DIR=$(realpath $(dirname $0)/..)
TEST_LOG=/tmp/test_log.txt
log_level=INFO
UDMI_ALT_REGISTRY=ZZ-REDIRECT-NA

if [[ $1 == '-v' ]]; then
log_level=DEBUG
Expand Down
2 changes: 0 additions & 2 deletions bin/test_sequencer
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@ if [[ -n `which rot13` ]]; then
# Project is provided as a secret, so obfuscate to prevent redactions in server-side logs.
echo 'Using target project (rot13):' $(echo $project_id | rot13)
echo 'With SEQUENCER_OPTS (rot13):' $(echo $SEQUENCER_OPTS | rot13)
echo 'With UDMI_ALT_REGISTRY (rot13):' $(echo $UDMI_ALT_REGISTRY | rot13)
else
echo 'Using target project:' $project_id
echo 'With SEQUENCER_OPTS:' $SEQUENCER_OPTS
echo 'With UDMI_ALT_REGISTRY:' $UDMI_ALT_REGISTRY
fi

site_path=sites/udmi_site_model
Expand Down
7 changes: 7 additions & 0 deletions common/src/main/java/com/google/udmi/util/Features.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.google.udmi.util;

import java.util.HashMap;

public class Features extends HashMap<String, Features> {

}
83 changes: 77 additions & 6 deletions docs/specs/sequences/generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,18 @@ Some caveats:
<!-- START GENERATED, do not edit anything after this line! -->
* [broken_config](#broken_config): Check that the device correctly handles a broken (non-json) config message.
* [device_config_acked](#device_config_acked): Check that the device MQTT-acknowledges a sent config.
* [empty_enumeration](#empty_enumeration)
* [endpoint_connection_bad_hash](#endpoint_connection_bad_hash): Failed connection because of bad hash.
* [endpoint_connection_error](#endpoint_connection_error): Push endpoint config message to device that results in a connection error.
* [endpoint_connection_retry](#endpoint_connection_retry): Check repeated endpoint with same information gets retried.
* [endpoint_connection_success_alternate](#endpoint_connection_success_alternate): Check connection to an alternate project.
* [endpoint_connection_success_reconnect](#endpoint_connection_success_reconnect): Check a successful reconnect to the same endpoint.
* [extra_config](#extra_config): Check that the device correctly handles an extra out-of-schema field
* [family_enumeration](#family_enumeration)
* [feature_enumeration](#feature_enumeration)
* [multi_enumeration](#multi_enumeration)
* [periodic_scan](#periodic_scan)
* [self_enumeration](#self_enumeration)
* [pointset_enumeration](#pointset_enumeration)
* [single_scan](#single_scan)
* [system_last_update](#system_last_update): Check that last_update state is correctly set in response to a config update.
* [system_min_loglevel](#system_min_loglevel): Check that the min log-level config is honored by the device.
Expand Down Expand Up @@ -75,6 +79,21 @@ Check that the device MQTT-acknowledges a sent config.

1. Wait for config acked

## empty_enumeration

1. Update config before enumeration not active:
* Add `discovery` = { "enumerate": { } }
1. Wait for enumeration not active
1. Update config before matching enumeration generation:
* Add `discovery.generation` = `generation start time`
1. Wait for matching enumeration generation
1. Update config before cleared enumeration generation:
* Remove `discovery.generation`
1. Wait for cleared enumeration generation
1. Check that no family enumeration
1. Check that no feature enumeration
1. Check that no point enumeration

## endpoint_connection_bad_hash

Failed connection because of bad hash.
Expand Down Expand Up @@ -176,6 +195,51 @@ Check that the device correctly handles an extra out-of-schema field
1. Wait for log category `system.config.parse` level `DEBUG` was logged
1. Wait for log category `system.config.apply` level `NOTICE` was logged

## family_enumeration

1. Update config before enumeration not active:
* Add `discovery` = { "enumerate": { "families": `true` } }
1. Wait for enumeration not active
1. Update config before matching enumeration generation:
* Add `discovery.generation` = `generation start time`
1. Wait for matching enumeration generation
1. Update config before cleared enumeration generation:
* Remove `discovery.generation`
1. Wait for cleared enumeration generation
1. Check that family enumeration matches
1. Check that no feature enumeration
1. Check that no point enumeration

## feature_enumeration

1. Update config before enumeration not active:
* Add `discovery` = { "enumerate": { "features": `true` } }
1. Wait for enumeration not active
1. Update config before matching enumeration generation:
* Add `discovery.generation` = `generation start time`
1. Wait for matching enumeration generation
1. Update config before cleared enumeration generation:
* Remove `discovery.generation`
1. Wait for cleared enumeration generation
1. Check that no family enumeration
1. Check that features enumerated
1. Check that no point enumeration

## multi_enumeration

1. Update config before enumeration not active:
* Add `discovery` = { "enumerate": { "features": `true`, "uniqs": `true`, "families": `true` } }
1. Wait for enumeration not active
1. Update config before matching enumeration generation:
* Add `discovery.generation` = `generation start time`
1. Wait for matching enumeration generation
1. Update config before cleared enumeration generation:
* Remove `discovery.generation`
1. Wait for cleared enumeration generation
1. Check that family enumeration matches
1. Check that features enumerated
1. Check that points enumerated 3

## periodic_scan

1. Update config before all scans not active:
Expand All @@ -185,13 +249,20 @@ Check that the device correctly handles an extra out-of-schema field
* Add `discovery.families.virtual` = { "generation": `family generation`, "scan_interval_sec": `10`, "enumerate": `true` }
1. Wait for scan iterations

## self_enumeration
## pointset_enumeration

1. Update config before enumeration not active:
* Add `discovery` = { "enumerate": { "uniqs": `true` } }
1. Wait for enumeration not active
1. Update config before enumeration generation:
* Add `discovery` = { "enumeration": { "generation": `generation start time` } }
1. Wait for enumeration generation
1. Wait for enumeration still not active
1. Update config before matching enumeration generation:
* Add `discovery.generation` = `generation start time`
1. Wait for matching enumeration generation
1. Update config before cleared enumeration generation:
* Remove `discovery.generation`
1. Wait for cleared enumeration generation
1. Check that no family enumeration
1. Check that no feature enumeration
1. Check that points enumerated 3

## single_scan

Expand Down
10 changes: 7 additions & 3 deletions etc/sequencer.out
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
RESULT pass broken_config Sequence complete
RESULT pass device_config_acked Sequence complete
RESULT pass empty_enumeration ALPHA Sequence complete
RESULT pass endpoint_connection_bad_hash Sequence complete
RESULT pass endpoint_connection_error Sequence complete
RESULT pass endpoint_connection_retry Sequence complete
RESULT pass endpoint_connection_success_alternate Sequence complete
RESULT pass endpoint_connection_success_reconnect Sequence complete
RESULT pass extra_config Sequence complete
RESULT pass family_enumeration ALPHA Sequence complete
RESULT pass feature_enumeration ALPHA Sequence complete
RESULT pass multi_enumeration ALPHA Sequence complete
RESULT pass periodic_scan Sequence complete
RESULT pass self_enumeration Sequence complete
RESULT pass pointset_enumeration ALPHA Sequence complete
RESULT pass single_scan Sequence complete
RESULT pass system_last_update Sequence complete
RESULT pass system_min_loglevel Sequence complete
RESULT pass system_mode_restart Sequence complete
RESULT pass system_min_loglevel BETA Sequence complete
RESULT pass system_mode_restart PREVIEW Sequence complete
RESULT pass valid_serial_no Sequence complete
RESULT pass valid_serial_no Sequence complete
RESULT pass valid_serial_no Sequence complete
Expand Down
Loading