diff --git a/.github/workflows/tck-test.yml b/.github/workflows/tck-test.yml index 84458073..7b296dbd 100644 --- a/.github/workflows/tck-test.yml +++ b/.github/workflows/tck-test.yml @@ -50,9 +50,7 @@ jobs: python install_dependencies.py - name: Lint with flake8 run: | - # stop the build if there are Python syntax errors or undefined names flake8 . --exclude scripts/up-python --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 --ignore E203,E402,W503,W504,F811 . --exclude scripts/up-python --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Get Behave Scripts uses: actions/github-script@v6 @@ -63,6 +61,7 @@ jobs: const feature_file_list = []; const fs = require('fs'); const path = require('path'); + const subProcess = require('child_process') function traverseDir(dir) { fs.readdirSync(dir).forEach(file => { @@ -78,27 +77,32 @@ jobs: traverseDir("./test_manager/features/tests"); fs.writeFileSync('./test_manager/feature_file_list.json', JSON.stringify(feature_file_list)); + + var feature_json = JSON.parse(fs.readFileSync('./test_manager/testData/workflow_test_data.json', 'utf8')); + const command_list = []; + for(var feature_file_name in feature_json){ + for (var language in feature_json[feature_file_name]["ues"]){ + for (var transport in feature_json[feature_file_name]["transports"]){ + var port_language = feature_json[feature_file_name]["ues"][language] + var port_transport = feature_json[feature_file_name]["transports"][transport] + var command_str = "behave --define uE1=" + port_language + " --define transport=" + port_transport + " --format json --outfile './reports/" + feature_file_name + "_" + port_language + ".json' --format html --outfile './reports/" + feature_file_name + "_" + port_language + ".html' './features/tests/" + feature_json[feature_file_name]["path"] + "/" + feature_file_name + ".feature'" + command_list.push(command_str); + } + } + } + fs.writeFileSync('./test_manager/command_list.json', JSON.stringify(command_list)); + - name: TCK Behave Tests run: | - pwd - ls -l cd test_manager - # Read JSON file content - content=$(<./feature_file_list.json) - - # Loop through each JSON object + content=$(<./command_list.json) echo "$content" | jq -c '.[]' | while IFS='' read -r obj; do - # Extract filename and full path from the current JSON object - filename=$(echo "$obj" | jq -r '.filename') - full_path=$(echo "$obj" | jq -r '.path') - - # Run behave command - echo "Running Test: $filename" - behave --define uE1=python --define transport=socket --format json --outfile "./reports/${filename}_python.json" --format html --outfile "./reports/${filename}_python.html" "$full_path" - behave --define uE1=java --define transport=socket --format json --outfile "./reports/${filename}_java.json" --format html --outfile "./reports/${filename}_java.html" "$full_path" - echo "Finished Test: $filename" + obj=$(sed -e 's/^"//' -e 's/"$//' <<< "$obj") + echo "Running Test: $obj" + eval "$obj" + echo "Finished Test: $obj" done - - name: Get Behave Scripts + - name: Read Behave Results uses: actions/github-script@v6 with: result-encoding: string diff --git a/.gitignore b/.gitignore index 33c36188..ba05d6ae 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,6 @@ MANIFEST *.log.lck *.log.1 *.html -*.json **/jar_files/** *.jar **/.DS_Store diff --git a/test_agent/rust/Cargo.lock b/test_agent/rust/Cargo.lock index 757632eb..2ef8d4f3 100644 --- a/test_agent/rust/Cargo.lock +++ b/test_agent/rust/Cargo.lock @@ -17,6 +17,29 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -26,6 +49,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -50,6 +79,55 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "anyhow" version = "1.0.82" @@ -66,12 +144,28 @@ dependencies = [ "serde_json", ] +[[package]] +name = "array-init" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" + [[package]] name = "arrayvec" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -123,6 +217,7 @@ dependencies = [ "blocking", "futures-lite 2.3.0", "once_cell", + "tokio", ] [[package]] @@ -184,16 +279,63 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.32", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-rustls" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecfa55659849ace733f86ccd219da40abd8bc14124e40b312433e85a5a266e77" +dependencies = [ + "futures-io", + "rustls", +] + +[[package]] +name = "async-signal" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +dependencies = [ + "async-io 2.3.2", + "async-lock 3.3.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.32", + "signal-hook-registry", + "slab", + "windows-sys 0.52.0", +] + [[package]] name = "async-std" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" dependencies = [ + "async-attributes", "async-channel 1.9.0", "async-global-executor", "async-io 1.13.0", "async-lock 2.8.0", + "async-process", "crossbeam-utils", "futures-channel", "futures-core", @@ -265,12 +407,24 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bitflags" version = "1.3.2" @@ -295,6 +449,15 @@ dependencies = [ "wyz", ] +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "blocking" version = "1.5.1" @@ -317,12 +480,24 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +[[package]] +name = "cache-padded" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "981520c98f422fcc584dc1a95c334e6953900b9106bc47a9839b81790009eb21" + [[package]] name = "cc" version = "1.0.92" @@ -349,6 +524,16 @@ dependencies = [ "windows-targets 0.52.4", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clap" version = "2.34.0" @@ -358,12 +543,58 @@ dependencies = [ "ansi_term", "atty", "bitflags 1.3.2", - "strsim", + "strsim 0.8.0", "textwrap", "unicode-width", "vec_map", ] +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_derive" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + [[package]] name = "concurrent-queue" version = "2.4.0" @@ -373,6 +604,32 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -389,12 +646,87 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + [[package]] name = "crossbeam-utils" version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + [[package]] name = "either" version = "1.10.0" @@ -445,6 +777,17 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "event-listener" version = "4.0.3" @@ -502,6 +845,24 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -538,6 +899,21 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.30" @@ -554,6 +930,17 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.30" @@ -588,6 +975,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + [[package]] name = "futures-sink" version = "0.3.30" @@ -606,8 +1004,10 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ + "futures-channel", "futures-core", "futures-io", + "futures-macro", "futures-sink", "futures-task", "memchr", @@ -617,14 +1017,26 @@ dependencies = [ ] [[package]] -name = "getrandom" -version = "0.2.14" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "cfg-if", + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +dependencies = [ + "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -633,6 +1045,32 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "gloo-timers" version = "0.2.6" @@ -656,7 +1094,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 1.1.0", "indexmap 2.2.6", "slab", "tokio", @@ -670,11 +1108,30 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + [[package]] name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" @@ -691,6 +1148,21 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + [[package]] name = "home" version = "0.5.9" @@ -700,6 +1172,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.1.0" @@ -718,7 +1201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http", + "http 1.1.0", ] [[package]] @@ -729,7 +1212,7 @@ checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" dependencies = [ "bytes", "futures-core", - "http", + "http 1.1.0", "http-body", "pin-project-lite", ] @@ -756,7 +1239,7 @@ dependencies = [ "futures-channel", "futures-util", "h2", - "http", + "http 1.1.0", "http-body", "httparse", "itoa", @@ -791,7 +1274,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http", + "http 1.1.0", "http-body", "hyper", "pin-project-lite", @@ -855,6 +1338,15 @@ dependencies = [ "hashbrown 0.14.3", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + [[package]] name = "instant" version = "0.1.12" @@ -881,6 +1373,15 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "ipnetwork" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" +dependencies = [ + "serde", +] + [[package]] name = "is-terminal" version = "0.4.12" @@ -892,6 +1393,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itertools" version = "0.10.5" @@ -931,10 +1438,39 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce3fb2a8dfbb6a331894e1bfad1b4d58d822e6945d98ea427c3f91f56a66529b" dependencies = [ - "clap", + "clap 2.34.0", "nom", ] +[[package]] +name = "json5" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" +dependencies = [ + "pest", + "pest_derive", + "serde", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keyed-set" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e110283e09081809ca488cf3a9709270c6d4d4c4a32674c39cc438366615a" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -949,6 +1485,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "lexical-core" @@ -969,6 +1508,32 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.4", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -1000,6 +1565,15 @@ dependencies = [ "value-bag", ] +[[package]] +name = "lz4_flex" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" +dependencies = [ + "twox-hash", +] + [[package]] name = "mediatype" version = "0.19.18" @@ -1038,6 +1612,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -1056,6 +1639,23 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "libc", +] + +[[package]] +name = "no-std-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + [[package]] name = "nom" version = "6.1.2" @@ -1069,6 +1669,43 @@ dependencies = [ "version_check", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.18" @@ -1076,6 +1713,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1147,6 +1785,21 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" +dependencies = [ + "num-traits", +] + [[package]] name = "parking" version = "2.2.0" @@ -1176,12 +1829,82 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.2.6", +] + [[package]] name = "pin-project" version = "1.1.5" @@ -1226,72 +1949,184 @@ dependencies = [ ] [[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "polling" -version = "2.8.0" +name = "pkcs1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", + "der", + "pkcs8", + "spki", ] [[package]] -name = "polling" -version = "3.6.0" +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi 0.3.9", - "pin-project-lite", - "rustix 0.38.32", - "tracing", - "windows-sys 0.52.0", + "der", + "spki", ] [[package]] -name = "ppv-lite86" -version = "0.2.17" +name = "pkg-config" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] -name = "proc-macro2" -version = "1.0.79" +name = "pnet" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "130c5b738eeda2dc5796fe2671e49027e6935e817ab51b930a36ec9e6a206a64" dependencies = [ - "unicode-ident", + "ipnetwork", + "pnet_base", + "pnet_datalink", + "pnet_packet", + "pnet_sys", + "pnet_transport", ] [[package]] -name = "prost" -version = "0.11.9" +name = "pnet_base" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c" dependencies = [ - "bytes", - "prost-derive 0.11.9", + "no-std-net", ] [[package]] -name = "prost" -version = "0.12.4" +name = "pnet_datalink" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" +checksum = "ad5854abf0067ebbd3967f7d45ebc8976ff577ff0c7bd101c4973ae3c70f98fe" +dependencies = [ + "ipnetwork", + "libc", + "pnet_base", + "pnet_sys", + "winapi", +] + +[[package]] +name = "pnet_macros" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn 2.0.58", +] + +[[package]] +name = "pnet_macros_support" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56" +dependencies = [ + "pnet_base", +] + +[[package]] +name = "pnet_packet" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba" +dependencies = [ + "glob", + "pnet_base", + "pnet_macros", + "pnet_macros_support", +] + +[[package]] +name = "pnet_sys" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "417c0becd1b573f6d544f73671070b039051e5ad819cc64aa96377b536128d00" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "pnet_transport" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2637e14d7de974ee2f74393afccbc8704f3e54e6eb31488715e72481d1662cc3" +dependencies = [ + "libc", + "pnet_base", + "pnet_packet", + "pnet_sys", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.3.9", + "pin-project-lite", + "rustix 0.38.32", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro2" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" dependencies = [ "bytes", "prost-derive 0.12.4", @@ -1453,6 +2288,54 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9653c3ed92974e34c5a6e0a510864dab979760481714c172e0a34e437cb98804" +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +dependencies = [ + "bytes", + "rand", + "ring 0.16.20", + "rustc-hash", + "rustls", + "rustls-native-certs 0.6.3", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +dependencies = [ + "bytes", + "libc", + "socket2 0.5.6", + "tracing", + "windows-sys 0.48.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -1507,6 +2390,17 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + [[package]] name = "regex" version = "1.10.4" @@ -1542,14 +2436,14 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19" dependencies = [ - "base64", + "base64 0.22.0", "bytes", "encoding_rs", "futures-channel", "futures-core", "futures-util", "h2", - "http", + "http 1.1.0", "http-body", "http-body-util", "hyper", @@ -1563,7 +2457,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile", + "rustls-pemfile 2.1.2", "serde", "serde_json", "serde_urlencoded", @@ -1579,6 +2473,66 @@ dependencies = [ "winreg", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ringbuffer-spsc" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1938faa63a2362ee1747afb2d10567d0fb1413b9cbd6198a8541485c4f773" +dependencies = [ + "array-init", + "cache-padded", +] + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rust_tck" version = "0.1.0" @@ -1587,7 +2541,7 @@ dependencies = [ "anystruct", "async-std", "async-trait", - "base64", + "base64 0.22.0", "chrono", "env_logger", "json2pb", @@ -1597,12 +2551,15 @@ dependencies = [ "prost-types 0.12.4", "protobuf", "protobuf-json-mapping", + "rand", "serde", "serde_json", "tokio", + "up-client-zenoh", "up-rust", "utransport-socket", "uuid", + "zenoh", ] [[package]] @@ -1611,6 +2568,21 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.37.27" @@ -1638,13 +2610,59 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.2", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pemfile" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64", + "base64 0.22.0", "rustls-pki-types", ] @@ -1654,6 +2672,27 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "ryu" version = "1.0.17" @@ -1669,12 +2708,56 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "schemars" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6e7ed6919cb46507fb01ff1654309219f62b4d603822501b0b80d42f6f21ef" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185f2b7aa7e02d418e453790dde16890256bbd2bcd04b7dc5348811052b53f49" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.58", +] + [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "serde", + "zeroize", +] + [[package]] name = "security-framework" version = "2.10.0" @@ -1698,6 +2781,12 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + [[package]] name = "serde" version = "1.0.197" @@ -1719,8 +2808,19 @@ dependencies = [ ] [[package]] -name = "serde_json" -version = "1.0.115" +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "serde_json" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ @@ -1741,6 +2841,60 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "shellexpand" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" +dependencies = [ + "dirs", +] + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -1750,6 +2904,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + [[package]] name = "slab" version = "0.4.9" @@ -1785,18 +2949,67 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stop-token" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af91f480ee899ab2d9f8435bfdfc14d08a5754bd9d3fef1f1a1c23336aad6c8b" +dependencies = [ + "async-channel 1.9.0", + "cfg-if", + "futures-core", + "pin-project-lite", +] + [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + [[package]] name = "syn" version = "1.0.109" @@ -1917,6 +3130,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "token-cell" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a2b964fdb303b08a4eab04d7c1bad2bca33f8eee334ccd28802f1041c6eb87" +dependencies = [ + "paste", +] + [[package]] name = "tokio" version = "1.37.0" @@ -1957,6 +3179,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -2007,9 +3241,21 @@ checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -2025,6 +3271,61 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uhlc" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1eadef1fa26cbbae1276c46781e8f4d888bdda434779c18ae6c2a0e69991885" +dependencies = [ + "humantime", + "lazy_static", + "log", + "rand", + "serde", + "spin 0.9.8", +] + [[package]] name = "unicode-bidi" version = "0.3.15" @@ -2052,10 +3353,64 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "up-client-zenoh" +version = "0.1.0" +source = "git+https://github.com/eclipse-uprotocol/up-client-zenoh-rust.git?rev=dc0a3a95564ab1c83771fe71f0da5a261d469fb6#dc0a3a95564ab1c83771fe71f0da5a261d469fb6" +dependencies = [ + "anyhow", + "async-std", + "async-trait", + "chrono", + "env_logger", + "log", + "prost 0.12.4", + "prost-types 0.12.4", + "protobuf", + "rand", + "up-rust", + "zenoh", +] + [[package]] name = "up-rust" version = "0.1.5" -source = "git+https://github.com/eclipse-uprotocol/up-rust?rev=897ebc3d8d8cd4ad0082ff6899a9e0b217bbd06a#897ebc3d8d8cd4ad0082ff6899a9e0b217bbd06a" +source = "git+https://github.com/eclipse-uprotocol/up-rust?rev=c705ac97602ad6917a93d23651e8a504ec7bb718#c705ac97602ad6917a93d23651e8a504ec7bb718" dependencies = [ "async-trait", "bytes", @@ -2083,6 +3438,18 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "utransport-socket" version = "0.1.0" @@ -2090,7 +3457,7 @@ dependencies = [ "anyhow", "anystruct", "async-trait", - "base64", + "base64 0.22.0", "chrono", "env_logger", "json2pb", @@ -2112,6 +3479,33 @@ name = "uuid" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom", +] + +[[package]] +name = "validated_struct" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feef04c049b4beae3037a2a31b8da40d8cebec0b97456f24c7de0ede4ed9efed" +dependencies = [ + "json5", + "serde", + "serde_json", + "validated_struct_macros", +] + +[[package]] +name = "validated_struct_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d4444a980afa9ef0d29c2a3f4d952ec0495a7a996a9c78b52698b71bc21edb4" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unzip-n", +] [[package]] name = "value-bag" @@ -2234,6 +3628,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "4.4.2" @@ -2433,3 +3836,464 @@ name = "wyz" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "zenoh" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a36b83f5835024bdeefd9079b4af86db316f7a3af94214734df34e098cececfd" +dependencies = [ + "async-global-executor", + "async-std", + "async-trait", + "base64 0.21.7", + "const_format", + "env_logger", + "event-listener 4.0.3", + "flume", + "form_urlencoded", + "futures", + "git-version", + "hex", + "lazy_static", + "log", + "ordered-float", + "paste", + "petgraph", + "rand", + "regex", + "rustc_version", + "serde", + "serde_json", + "socket2 0.5.6", + "stop-token", + "uhlc", + "uuid", + "vec_map", + "zenoh-buffers", + "zenoh-codec", + "zenoh-collections", + "zenoh-config", + "zenoh-core", + "zenoh-crypto", + "zenoh-link", + "zenoh-macros", + "zenoh-plugin-trait", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-transport", + "zenoh-util", +] + +[[package]] +name = "zenoh-buffers" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e2261fe0052adb5ef062fde72cbe3e662f7516c8b824b1822484bf74405d9c" +dependencies = [ + "zenoh-collections", +] + +[[package]] +name = "zenoh-codec" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a216c47e82917a33ad52efa136f81dbdee2f7bd7d1c48b7aa064fedff33be9" +dependencies = [ + "log", + "serde", + "uhlc", + "zenoh-buffers", + "zenoh-protocol", +] + +[[package]] +name = "zenoh-collections" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "639c58788f591f8f80e9722d1c214c6d6c480ca9f90eeff29b8e929848f25241" + +[[package]] +name = "zenoh-config" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d36ec0bd12e9c3cbe60d4fb04dfd42485d404e886fd46fc096e45037507d721" +dependencies = [ + "flume", + "json5", + "num_cpus", + "secrecy", + "serde", + "serde_json", + "serde_yaml", + "validated_struct", + "zenoh-core", + "zenoh-protocol", + "zenoh-result", + "zenoh-util", +] + +[[package]] +name = "zenoh-core" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447f92480b131892c65b1958d362de4b0db28784cd0efa8c68ed0766ef5f3e4a" +dependencies = [ + "async-std", + "lazy_static", + "zenoh-result", +] + +[[package]] +name = "zenoh-crypto" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5defd1096ee882529e1596c5762cc91c43e6136c6a986dba5be653e1cab65329" +dependencies = [ + "aes", + "hmac", + "rand", + "rand_chacha", + "sha3", + "zenoh-result", +] + +[[package]] +name = "zenoh-keyexpr" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4934fbb00820a45eb360af6c01538607a5e01d4fc0da201338b376ce2329c91a" +dependencies = [ + "hashbrown 0.14.3", + "keyed-set", + "rand", + "schemars", + "serde", + "token-cell", + "zenoh-result", +] + +[[package]] +name = "zenoh-link" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "853e37b4991941dba7ac0a0d18c6cefcc3faea06b504c24e6099595f23352587" +dependencies = [ + "async-std", + "async-trait", + "zenoh-config", + "zenoh-link-commons", + "zenoh-link-quic", + "zenoh-link-tcp", + "zenoh-link-tls", + "zenoh-link-udp", + "zenoh-link-unixsock_stream", + "zenoh-link-ws", + "zenoh-protocol", + "zenoh-result", +] + +[[package]] +name = "zenoh-link-commons" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9ffdae930104183a86a5f888fa7bb02c8c08415c3f715e7d268cd09f5124e3a" +dependencies = [ + "async-std", + "async-trait", + "flume", + "lz4_flex", + "serde", + "typenum", + "zenoh-buffers", + "zenoh-codec", + "zenoh-protocol", + "zenoh-result", +] + +[[package]] +name = "zenoh-link-quic" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfa825958f9ed292d241f45e0ac29804790ec39eed57f1a262ffb481c6c2539e" +dependencies = [ + "async-rustls", + "async-std", + "async-trait", + "base64 0.21.7", + "futures", + "log", + "quinn", + "rustls", + "rustls-native-certs 0.7.0", + "rustls-pemfile 2.1.2", + "rustls-webpki 0.102.3", + "secrecy", + "zenoh-config", + "zenoh-core", + "zenoh-link-commons", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-util", +] + +[[package]] +name = "zenoh-link-tcp" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e1b9908eecc9ccebbfc41992f82a177e8bd71aa0a70a22326794ede7e8b09d" +dependencies = [ + "async-std", + "async-trait", + "log", + "zenoh-core", + "zenoh-link-commons", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-util", +] + +[[package]] +name = "zenoh-link-tls" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5bafb58c3841d19f0a1b07248c29c4a952cf9fd118a867034c0b6528a3ab5e" +dependencies = [ + "async-rustls", + "async-std", + "async-trait", + "base64 0.21.7", + "futures", + "log", + "rustls", + "rustls-pemfile 2.1.2", + "rustls-webpki 0.102.3", + "secrecy", + "webpki-roots", + "zenoh-config", + "zenoh-core", + "zenoh-link-commons", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-util", +] + +[[package]] +name = "zenoh-link-udp" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540459645821cc63c9aebd6d405509adfec0f5584673f9551de26004ff3ddbff" +dependencies = [ + "async-std", + "async-trait", + "log", + "socket2 0.5.6", + "zenoh-buffers", + "zenoh-collections", + "zenoh-core", + "zenoh-link-commons", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-util", +] + +[[package]] +name = "zenoh-link-unixsock_stream" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d281e37dfc0c0ca3bace54dec15bdfd5b12b3cb4a01593e71e1a4ef59e48b57c" +dependencies = [ + "async-std", + "async-trait", + "futures", + "log", + "nix", + "uuid", + "zenoh-core", + "zenoh-link-commons", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", +] + +[[package]] +name = "zenoh-link-ws" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "766663fc1e96c382e59eb009f751744a6967bf76537e1091584382722a5d9d50" +dependencies = [ + "async-std", + "async-trait", + "futures-util", + "log", + "tokio", + "tokio-tungstenite", + "url", + "zenoh-core", + "zenoh-link-commons", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-util", +] + +[[package]] +name = "zenoh-macros" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2826db61e1526dea78371a1cdf7ce7b933fd390abfbec1eff07b22262cebc4f8" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.58", + "unzip-n", + "zenoh-keyexpr", +] + +[[package]] +name = "zenoh-plugin-trait" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a45fd679f3fdf661ef914ebf4ed8210357bfa7144411f8fdbb18199a903d6270" +dependencies = [ + "libloading", + "log", + "serde_json", + "zenoh-macros", + "zenoh-result", + "zenoh-util", +] + +[[package]] +name = "zenoh-protocol" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4af91145a94f60b9165e85b0ac6fa84e2f0448f9cde3e3065f6e73bb5b2ef3c" +dependencies = [ + "const_format", + "hex", + "rand", + "serde", + "uhlc", + "uuid", + "zenoh-buffers", + "zenoh-keyexpr", + "zenoh-result", +] + +[[package]] +name = "zenoh-result" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3b5209dc13bf96dc62921a389af38e757fb0baea54f2078e29636d2238e958" +dependencies = [ + "anyhow", +] + +[[package]] +name = "zenoh-sync" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f515dae61f3216a4c5ed9229fcaa9fb6f5837622f56e94c7454141bfba844b69" +dependencies = [ + "async-std", + "event-listener 4.0.3", + "flume", + "futures", + "tokio", + "zenoh-buffers", + "zenoh-collections", + "zenoh-core", +] + +[[package]] +name = "zenoh-transport" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a888646bbaa18c0901081207eab56200ec13bcaec7b5629b9389ee3255eab6" +dependencies = [ + "async-executor", + "async-global-executor", + "async-std", + "async-trait", + "flume", + "log", + "lz4_flex", + "paste", + "rand", + "ringbuffer-spsc", + "rsa", + "serde", + "sha3", + "zenoh-buffers", + "zenoh-codec", + "zenoh-collections", + "zenoh-config", + "zenoh-core", + "zenoh-crypto", + "zenoh-link", + "zenoh-protocol", + "zenoh-result", + "zenoh-sync", + "zenoh-util", +] + +[[package]] +name = "zenoh-util" +version = "0.10.1-rc" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e867296dc177ca7d5870f76374153cc30087ef0ba9914f567addf52e05d2259" +dependencies = [ + "async-std", + "async-trait", + "clap 4.5.4", + "const_format", + "flume", + "futures", + "hex", + "home", + "humantime", + "lazy_static", + "libc", + "libloading", + "log", + "pnet", + "pnet_datalink", + "shellexpand", + "winapi", + "zenoh-core", + "zenoh-protocol", + "zenoh-result", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/test_agent/rust/Cargo.toml b/test_agent/rust/Cargo.toml index 03c4cb71..f0359cf0 100644 --- a/test_agent/rust/Cargo.toml +++ b/test_agent/rust/Cargo.toml @@ -41,7 +41,9 @@ prost = "0.12" prost-types = "0.12" protobuf = { version = "3.3" } utransport-socket = {path = "../../up_client_socket/rust/utransport-socket"} -up-rust = { git = "https://github.com/eclipse-uprotocol/up-rust", rev = "897ebc3d8d8cd4ad0082ff6899a9e0b217bbd06a"} +up-rust = { git = "https://github.com/eclipse-uprotocol/up-rust", rev = "c705ac97602ad6917a93d23651e8a504ec7bb718"} +up-client-zenoh = {git ="https://github.com/eclipse-uprotocol/up-client-zenoh-rust.git", rev = "dc0a3a95564ab1c83771fe71f0da5a261d469fb6"} +zenoh = { version = "0.10.1-rc", features = ["unstable"]} base64 = { version = "0.22.0"} serde = { version = "1.0", features = ["derive"] } once_cell = "1.8.0" @@ -51,6 +53,7 @@ json2pb="*" protobuf-json-mapping = "3.4.0" serde_json = "1.0" uuid = "1.8.0" +rand = "0.8.4" #prost-json = "0.8" diff --git a/test_agent/rust/src/main.rs b/test_agent/rust/src/main.rs index 450a775e..f19455e7 100644 --- a/test_agent/rust/src/main.rs +++ b/test_agent/rust/src/main.rs @@ -23,15 +23,18 @@ mod constants; mod utils; -use std::{sync::Arc, thread}; +use std::{env, sync::Arc, thread}; use crate::constants::TEST_MANAGER_ADDR; use testagent::{ListenerHandlers, SocketTestAgent}; +use up_rust::{Number, UAuthority, UEntity, UTransport}; use utransport_socket::UTransportSocket; mod testagent; use log::{debug, error}; use std::net::TcpStream; use tokio::runtime::Runtime; +use up_client_zenoh::UPClientZenoh; +use zenoh::config::Config; fn connect_to_socket(addr: &str, port: u16) -> Result> { let socket_addr = format!("{addr}:{port}"); @@ -44,19 +47,43 @@ fn connect_to_socket(addr: &str, port: u16) -> Result Result<(), Box> { +async fn connect_and_receive(transport_name: &String) -> Result<(), Box> { let test_agent = connect_to_socket(TEST_MANAGER_ADDR.0, TEST_MANAGER_ADDR.1)?; let ta_to_tm_socket = connect_to_socket(TEST_MANAGER_ADDR.0, TEST_MANAGER_ADDR.1)?; let foo_listener_socket_to_tm = connect_to_socket(TEST_MANAGER_ADDR.0, TEST_MANAGER_ADDR.1)?; - let u_transport = UTransportSocket::new()?; - debug!("Socket transport created successfully"); + let u_transport: Box = if "zenoh" == transport_name { + let uauthority = UAuthority { + name: Some("MyAuthName".to_string()), + number: Some(Number::Id(vec![1, 2, 3, 4])), + ..Default::default() + }; + let uentity = UEntity { + name: "default.entity".to_string(), + id: Some(u32::from(rand::random::())), + version_major: Some(1), + version_minor: None, + ..Default::default() + }; + dbg!("zenoh transport created successfully"); + + Box::new( + UPClientZenoh::new(Config::default(), uauthority, uentity) + .await + .unwrap(), + ) + } else { + dbg!("Socket transport created successfully"); + Box::new(UTransportSocket::new()?) + }; + + let u_transport_ref: &dyn UTransport = &*u_transport; let foo_listener = Arc::new(ListenerHandlers::new(foo_listener_socket_to_tm)); let agent = SocketTestAgent::new(test_agent, foo_listener); agent .clone() - .receive_from_tm(u_transport, ta_to_tm_socket) + .receive_from_tm(u_transport_ref, ta_to_tm_socket) .await; Ok(()) @@ -65,8 +92,20 @@ async fn connect_and_receive() -> Result<(), Box> { #[tokio::main] async fn main() -> Result<(), Box> { let handle = thread::spawn(|| { - let rt = Runtime::new().expect("Error creating runtime"); - match rt.block_on(connect_and_receive()) { + let args: Vec = env::args().collect(); + + if args.len() < 2 { + eprintln!("Transport Name: {} ", args[0]); + std::process::exit(1); + } + + let transport_name = &args[1].clone(); // Assuming the string is the first argument + + println!("Transport Name: {transport_name}"); + + let rt = Runtime::new().expect("error creating run time"); + + match rt.block_on(connect_and_receive(transport_name)) { Ok(()) => (), Err(err) => eprintln!("Error occurred: {err}"), }; diff --git a/test_agent/rust/src/testagent.rs b/test_agent/rust/src/testagent.rs index f79d52f7..e2ef6cb8 100644 --- a/test_agent/rust/src/testagent.rs +++ b/test_agent/rust/src/testagent.rs @@ -33,7 +33,7 @@ use serde::Serialize; use crate::constants::SDK_INIT_MESSAGE; use crate::utils::{convert_json_to_jsonstring, WrapperUMessage, WrapperUUri}; -use crate::{constants, utils, UTransportSocket}; +use crate::{constants, utils}; use std::net::TcpStream; use self::utils::sanitize_input_string; @@ -149,7 +149,7 @@ impl SocketTestAgent { async fn handle_send_command( &self, - utransport: &UTransportSocket, + utransport: &dyn UTransport, json_data_value: Value, ) -> Result<(), UStatus> { let wrapper_umessage: WrapperUMessage = match serde_json::from_value(json_data_value) { @@ -166,7 +166,7 @@ impl SocketTestAgent { async fn handle_register_listener_command( &self, - utransport: &UTransportSocket, + utransport: &dyn UTransport, json_data_value: Value, ) -> Result<(), UStatus> { let wrapper_uuri: WrapperUUri = match serde_json::from_value(json_data_value) { @@ -185,7 +185,7 @@ impl SocketTestAgent { async fn handle_unregister_listener_command( &self, - utransport: &UTransportSocket, + utransport: &dyn UTransport, json_data_value: Value, ) -> Result<(), UStatus> { let wrapper_uuri: WrapperUUri = match serde_json::from_value(json_data_value) { @@ -204,7 +204,7 @@ impl SocketTestAgent { pub async fn receive_from_tm( &mut self, - utransport: UTransportSocket, + utransport: &dyn UTransport, ta_to_tm_socket: TcpStream, ) { self.clone().inform_tm_ta_starting().await; @@ -243,14 +243,14 @@ impl SocketTestAgent { let status = match json_str_ref { constants::SEND_COMMAND => { - self.handle_send_command(&utransport, json_data_value).await + self.handle_send_command(utransport, json_data_value).await } constants::REGISTER_LISTENER_COMMAND => { - self.handle_register_listener_command(&utransport, json_data_value) + self.handle_register_listener_command(utransport, json_data_value) .await } constants::UNREGISTER_LISTENER_COMMAND => { - self.handle_unregister_listener_command(&utransport, json_data_value) + self.handle_unregister_listener_command(utransport, json_data_value) .await } _ => Ok(()), diff --git a/test_manager/features/environment.py b/test_manager/features/environment.py index 371a85d1..0afbfc29 100644 --- a/test_manager/features/environment.py +++ b/test_manager/features/environment.py @@ -64,7 +64,8 @@ def after_all(context: Context): context.tm.close_test_agent("python") context.tm.close_test_agent("java") context.tm.close() - context.dispatcher["socket"].close() + if context.transport.get("transport") == "socket": + context.dispatcher["socket"].close() context.logger.info("Closed All Test Agents and Test Manager...") try: diff --git a/test_manager/features/steps/tck_step_implementations.py b/test_manager/features/steps/tck_step_implementations.py index 0bceef74..b38ca6b8 100644 --- a/test_manager/features/steps/tck_step_implementations.py +++ b/test_manager/features/steps/tck_step_implementations.py @@ -44,7 +44,7 @@ from dispatcher.dispatcher import Dispatcher -def create_command(filepath_from_root_repo: str) -> List[str]: +def create_command(context, filepath_from_root_repo: str) -> List[str]: command: List[str] = [] if filepath_from_root_repo.endswith(".jar"): @@ -64,6 +64,8 @@ def create_command(filepath_from_root_repo: str) -> List[str]: os.path.dirname(os.getcwd()) + "/" + filepath_from_root_repo ) ) + + command.append(context.transport["transport"]) return command @@ -98,6 +100,8 @@ def create_sdk_data(context, sdk_name: str, command: str): thread.start() context.dispatcher[context.transport["transport"]] = dispatcher time.sleep(5) + elif context.transport["transport"] == "zenoh": + context.logger.info("Zenoh selected as transport") else: raise ValueError("Invalid transport") @@ -105,11 +109,11 @@ def create_sdk_data(context, sdk_name: str, command: str): context.logger.info(f"Creating {sdk_name} process...") if sdk_name == "python": - run_command = create_command(PYTHON_TA_PATH) + run_command = create_command(context, PYTHON_TA_PATH) elif sdk_name == "java": - run_command = create_command(JAVA_TA_PATH) + run_command = create_command(context, JAVA_TA_PATH) elif sdk_name == "rust": - run_command = create_command(RUST_TA_PATH) + run_command = create_command(context, RUST_TA_PATH) process = create_subprocess(run_command) if sdk_name in ["python", "java", "rust"]: diff --git a/test_manager/features/tests/transport_rpc/register_and_send.feature b/test_manager/features/tests/transport_rpc/register_and_send.feature index 9f8b7932..db1fa732 100644 --- a/test_manager/features/tests/transport_rpc/register_and_send.feature +++ b/test_manager/features/tests/transport_rpc/register_and_send.feature @@ -27,7 +27,10 @@ Feature: Testing Publish and Subscribe Functionality Scenario Outline: To test the registerlistener and send apis Given "" creates data for "registerlistener" And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" And sets "resource.name" to "door" + And sets "resource.id" to "12345" And sets "resource.instance" to "front_left" And sets "resource.message" to "Door" @@ -38,7 +41,10 @@ Feature: Testing Publish and Subscribe Functionality And sets "attributes.id.msb" to "112128268635242497" And sets "attributes.id.lsb" to "11155833020022798372" And sets "attributes.source.entity.name" to "body.access" + And sets "attributes.source.entity.id" to "12345" + And sets "attributes.source.entity.version_major" to "1" And sets "attributes.source.resource.name" to "door" + And sets "attributes.source.resource.id" to "12345" And sets "attributes.source.resource.instance" to "front_left" And sets "attributes.source.resource.message" to "Door" And sets "attributes.priority" to "UPRIORITY_CS1" @@ -53,7 +59,10 @@ Feature: Testing Publish and Subscribe Functionality # Unregister in the end for cleanup When "" creates data for "unregisterlistener" And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" And sets "resource.name" to "door" + And sets "resource.id" to "12345" And sets "resource.instance" to "front_left" And sets "resource.message" to "Door" And sends "unregisterlistener" request diff --git a/test_manager/features/tests/transport_rpc/register_and_send_zenoh.feature b/test_manager/features/tests/transport_rpc/register_and_send_zenoh.feature new file mode 100644 index 00000000..c169091a --- /dev/null +++ b/test_manager/features/tests/transport_rpc/register_and_send_zenoh.feature @@ -0,0 +1,74 @@ +# ------------------------------------------------------------------------- +# +# SPDX-FileCopyrightText: Copyright (c) 2024 Contributors to +# the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http: *www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# SPDX-FileType: SOURCE +# SPDX-License-Identifier: Apache-2.0 +# +# ------------------------------------------------------------------------- + +Feature: Testing Publish and Subscribe Functionality - Zenoh + + Scenario Outline: To test the registerlistener and send apis + Given "" creates data for "registerlistener" + And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" + And sets "resource.name" to "door" + And sets "resource.id" to "12345" + And sets "resource.instance" to "front_left" + And sets "resource.message" to "Door" + + When sends "registerlistener" request + Then the status received with "code" is "OK" + + When "" creates data for "send" + And sets "attributes.id.msb" to "112128268635242497" + And sets "attributes.id.lsb" to "11155833020022798372" + And sets "attributes.source.entity.name" to "body.access" + And sets "attributes.source.entity.id" to "12345" + And sets "attributes.source.entity.version_major" to "1" + And sets "attributes.source.resource.name" to "door" + And sets "attributes.source.resource.id" to "12345" + And sets "attributes.source.resource.instance" to "front_left" + And sets "attributes.source.resource.message" to "Door" + And sets "attributes.priority" to "UPRIORITY_CS1" + And sets "attributes.type" to "UMESSAGE_TYPE_PUBLISH" + And sets "payload.format" to "UPAYLOAD_FORMAT_PROTOBUF_WRAPPED_IN_ANY" + And sets "payload.value" to b".type.googleapis.com/google.protobuf.Int32Value\x12\x02\x08\x03" + And sends "send" request + + Then the status received with "code" is "OK" + And "" sends onreceive message with field "payload.value" as b"type.googleapis.com/google.protobuf.Int32Value\x12\x02\x08\x03" + + # Unregister in the end for cleanup + When "" creates data for "unregisterlistener" + And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" + And sets "resource.name" to "door" + And sets "resource.id" to "12345" + And sets "resource.instance" to "front_left" + And sets "resource.message" to "Door" + And sends "unregisterlistener" request + + Then the status received with "code" is "OK" + + Examples: + | uE1 | uE2 | + | rust | rust | \ No newline at end of file diff --git a/test_manager/features/tests/transport_rpc/register_and_unregister.feature b/test_manager/features/tests/transport_rpc/register_and_unregister.feature index 4a75c337..b0bb5fe1 100644 --- a/test_manager/features/tests/transport_rpc/register_and_unregister.feature +++ b/test_manager/features/tests/transport_rpc/register_and_unregister.feature @@ -27,7 +27,10 @@ Feature: Testing register and unregister Scenario Outline: To test the registerlistener and unregisterlistener apis Given "" creates data for "registerlistener" And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" And sets "resource.name" to "door" + And sets "resource.id" to "12345" And sets "resource.instance" to "front_left" And sets "resource.message" to "Door" When sends "registerlistener" request @@ -36,7 +39,10 @@ Feature: Testing register and unregister When "" creates data for "unregisterlistener" And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" And sets "resource.name" to "door" + And sets "resource.id" to "12345" And sets "resource.instance" to "front_left" And sets "resource.message" to "Door" And sends "unregisterlistener" request @@ -53,7 +59,10 @@ Feature: Testing register and unregister Scenario Outline: Test unregisterlistener when no entity is registered to any topic Given "" creates data for "unregisterlistener" And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" And sets "resource.name" to "door" + And sets "resource.id" to "12345" And sets "resource.instance" to "front_left" And sets "resource.message" to "Door" diff --git a/test_manager/features/tests/transport_rpc/register_and_unregister_zenoh.feature b/test_manager/features/tests/transport_rpc/register_and_unregister_zenoh.feature new file mode 100644 index 00000000..6a2acd88 --- /dev/null +++ b/test_manager/features/tests/transport_rpc/register_and_unregister_zenoh.feature @@ -0,0 +1,73 @@ +# ------------------------------------------------------------------------- +# +# SPDX-FileCopyrightText: Copyright (c) 2024 Contributors to +# the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http: *www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# SPDX-FileType: SOURCE +# SPDX-License-Identifier: Apache-2.0 +# +# ------------------------------------------------------------------------- + +Feature: Testing register and unregister - Zenoh + + Scenario Outline: To test the registerlistener and unregisterlistener apis + Given "" creates data for "registerlistener" + And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" + And sets "resource.name" to "door" + And sets "resource.id" to "12345" + And sets "resource.instance" to "front_left" + And sets "resource.message" to "Door" + When sends "registerlistener" request + + Then the status received with "code" is "OK" + + When "" creates data for "unregisterlistener" + And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" + And sets "resource.name" to "door" + And sets "resource.id" to "12345" + And sets "resource.instance" to "front_left" + And sets "resource.message" to "Door" + And sends "unregisterlistener" request + + Then the status received with "code" is "OK" + + Examples: + | uE1 | + | rust | + + + Scenario Outline: Test unregisterlistener when no entity is registered to any topic + Given "" creates data for "unregisterlistener" + And sets "entity.name" to "body.access" + And sets "entity.id" to "12345" + And sets "entity.version_major" to "1" + And sets "resource.name" to "door" + And sets "resource.id" to "12345" + And sets "resource.instance" to "front_left" + And sets "resource.message" to "Door" + + When sends "unregisterlistener" request + + Then the status received with "code" is "INVALID_ARGUMENT" + + Examples: + | uE1 | + | rust | diff --git a/test_manager/testData/workflow_test_data.json b/test_manager/testData/workflow_test_data.json new file mode 100644 index 00000000..7bc94128 --- /dev/null +++ b/test_manager/testData/workflow_test_data.json @@ -0,0 +1,72 @@ +{ + "long_uri_deserializer": { + "path": "serializers", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "long_uri_serializer": { + "path": "serializers", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "long_uuid_deserializer": { + "path": "serializers", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "long_uuid_serializer": { + "path": "serializers", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "micro_uri_deserializer": { + "path": "serializers", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "micro_uri_serializer": { + "path": "serializers", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "register_and_invoke": { + "path": "transport_rpc", + "ues": ["all"], + "transports": ["socket"] + }, + "register_and_send": { + "path": "transport_rpc", + "ues": ["all"], + "transports": ["socket"] + }, + "register_and_unregister": { + "path": "transport_rpc", + "ues": ["all"], + "transports": ["socket"] + }, + "register_and_send_zenoh": { + "path": "transport_rpc", + "ues": ["all"], + "transports": ["zenoh"] + }, + "register_and_unregister_zenoh": { + "path": "transport_rpc", + "ues": ["all"], + "transports": ["zenoh"] + }, + "uattributes_validator": { + "path": "validators", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "uri_validator": { + "path": "validators", + "ues": ["python", "java"], + "transports": ["socket"] + }, + "uuid_validator": { + "path": "validators", + "ues": ["python", "java"], + "transports": ["socket"] + } +} \ No newline at end of file diff --git a/test_manager/testrunner.bat b/test_manager/testrunner.bat index 4e2aa223..20c7f6c3 100644 --- a/test_manager/testrunner.bat +++ b/test_manager/testrunner.bat @@ -1,8 +1,8 @@ @echo off set /p fname=Enter the feature file name: - set /p language=Enter Language Under Test [python/java]: - set /p transport=Enter Transport Under Test [socket]: + set /p language=Enter Language Under Test [python/java/rust]: + set /p transport=Enter Transport Under Test [socket/zenoh]: REM Run Behave with HTML formatter python -m behave --define uE1=%language% --define transport=%transport% -i %fname% --format html --outfile reports/%fname%_%date:~10,4%%date:~4,2%%date:~7,2%_%RANDOM%.html \ No newline at end of file diff --git a/test_manager/testrunner.sh b/test_manager/testrunner.sh index 6d51013a..cdc5b9bf 100644 --- a/test_manager/testrunner.sh +++ b/test_manager/testrunner.sh @@ -1,7 +1,7 @@ echo Enter the feature file name read fname -echo Enter Language Under Test [python/java] +echo Enter Language Under Test [python/java/rust] read language -echo Enter Transport Under Test [socket] +echo Enter Transport Under Test [socket/zenoh] read transport python3 -m behave --define uE1="${language}" --define transport="${transport}" -i "${fname}" --format html --outfile reports/"${fname}_$(date +%Y%m%d_%H%M%S).html" diff --git a/up_client_socket/rust/utransport-socket/Cargo.lock b/up_client_socket/rust/utransport-socket/Cargo.lock index a7089fa0..d0f42181 100644 --- a/up_client_socket/rust/utransport-socket/Cargo.lock +++ b/up_client_socket/rust/utransport-socket/Cargo.lock @@ -1641,7 +1641,7 @@ checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "up-rust" version = "0.1.5" -source = "git+https://github.com/eclipse-uprotocol/up-rust?rev=897ebc3d8d8cd4ad0082ff6899a9e0b217bbd06a#897ebc3d8d8cd4ad0082ff6899a9e0b217bbd06a" +source = "git+https://github.com/eclipse-uprotocol/up-rust?rev=c705ac97602ad6917a93d23651e8a504ec7bb718#c705ac97602ad6917a93d23651e8a504ec7bb718" dependencies = [ "async-trait", "bytes", diff --git a/up_client_socket/rust/utransport-socket/Cargo.toml b/up_client_socket/rust/utransport-socket/Cargo.toml index e9e6cb78..eb299f27 100644 --- a/up_client_socket/rust/utransport-socket/Cargo.toml +++ b/up_client_socket/rust/utransport-socket/Cargo.toml @@ -14,7 +14,7 @@ log = "0.4.17" prost = "0.12" prost-types = "0.12" protobuf = { version = "3.3" } -up-rust = { git = "https://github.com/eclipse-uprotocol/up-rust", rev = "897ebc3d8d8cd4ad0082ff6899a9e0b217bbd06a"} +up-rust = { git = "https://github.com/eclipse-uprotocol/up-rust", rev = "c705ac97602ad6917a93d23651e8a504ec7bb718"} base64 = { version = "0.22.0"} serde = { version = "1.0", features = ["derive"] } once_cell = "1.8.0"