@voxgig/sdkgen 4.8.2 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/voxgig-sdkgen +1 -1
- package/dist/action/doctor.d.ts +1 -0
- package/dist/action/doctor.js +50 -2
- package/dist/action/doctor.js.map +1 -1
- package/dist/helpers/naming.js +4 -2
- package/dist/helpers/naming.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/model/sdkgen.aon +21 -0
- package/package.json +1 -1
- package/project/.sdk/model/feature/secrets.aon +120 -18
- package/project/.sdk/model/target/c.aon +10 -0
- package/project/.sdk/model/target/clojure.aon +13 -0
- package/project/.sdk/model/target/cpp.aon +10 -0
- package/project/.sdk/model/target/csharp.aon +9 -0
- package/project/.sdk/model/target/dart.aon +10 -0
- package/project/.sdk/model/target/elixir.aon +9 -0
- package/project/.sdk/model/target/go.aon +13 -0
- package/project/.sdk/model/target/java.aon +9 -0
- package/project/.sdk/model/target/js.aon +7 -0
- package/project/.sdk/model/target/kotlin.aon +9 -0
- package/project/.sdk/model/target/lean.aon +17 -0
- package/project/.sdk/model/target/lua.aon +8 -0
- package/project/.sdk/model/target/ocaml.aon +9 -0
- package/project/.sdk/model/target/perl.aon +8 -0
- package/project/.sdk/model/target/php.aon +8 -0
- package/project/.sdk/model/target/py.aon +13 -0
- package/project/.sdk/model/target/rb.aon +8 -0
- package/project/.sdk/model/target/rust.aon +10 -0
- package/project/.sdk/model/target/scala.aon +21 -2
- package/project/.sdk/model/target/swift.aon +18 -0
- package/project/.sdk/model/target/ts.aon +13 -0
- package/project/.sdk/model/target/zig.aon +9 -0
- package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
- package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
- package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
- package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
- package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
- package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
- package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
- package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
- package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
- package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
- package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
- package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
- package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
- package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
- package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
- package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
- package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
- package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
- package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
- package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
- package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
- package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
- package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
- package/project/.sdk/tm/c/Makefile +38 -3
- package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
- package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
- package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
- package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
- package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
- package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
- package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
- package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
- package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
- package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
- package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
- package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
- package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
- package/project/.sdk/tm/cpp/Makefile +5 -1
- package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
- package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
- package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
- package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
- package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
- package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
- package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
- package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
- package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
- package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
- package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
- package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
- package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
- package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
- package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
- package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
- package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
- package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
- package/project/.sdk/tm/dart/test/omni.dart +520 -0
- package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
- package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
- package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
- package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
- package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
- package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
- package/project/.sdk/tm/elixir/Makefile +11 -3
- package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
- package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
- package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
- package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
- package/project/.sdk/tm/go/core/context.go +32 -16
- package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +208 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +150 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +442 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +714 -0
- package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
- package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
- package/project/.sdk/tm/go/test/omni/omni.go +902 -0
- package/project/.sdk/tm/go/test/omni/util.go +381 -0
- package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
- package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
- package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
- package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
- package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
- package/project/.sdk/tm/go/utility/make_options.go +8 -1
- package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
- package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
- package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
- package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
- package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
- package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
- package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
- package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
- package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
- package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
- package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
- package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
- package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
- package/project/.sdk/tm/js/test/omni.js +251 -0
- package/project/.sdk/tm/js/test/omni.test.js +105 -0
- package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
- package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
- package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
- package/project/.sdk/tm/js/test/vendor/omni/runner.js +628 -0
- package/project/.sdk/tm/js/test/vendor/omni/util.js +229 -0
- package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
- package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
- package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
- package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
- package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
- package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
- package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
- package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
- package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
- package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
- package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
- package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
- package/project/.sdk/tm/lean/Makefile +12 -5
- package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
- package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
- package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
- package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
- package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
- package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
- package/project/.sdk/tm/lua/test/omni.lua +456 -0
- package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
- package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
- package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
- package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
- package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
- package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
- package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
- package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
- package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
- package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
- package/project/.sdk/tm/ocaml/Makefile +37 -12
- package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
- package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
- package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
- package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
- package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
- package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
- package/project/.sdk/tm/perl/t/omni.pm +647 -0
- package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
- package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
- package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
- package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
- package/project/.sdk/tm/php/test/Omni.php +691 -0
- package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
- package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
- package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
- package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
- package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
- package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
- package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
- package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +76 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +151 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +90 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +475 -0
- package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
- package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
- package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
- package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
- package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
- package/project/.sdk/tm/py/test/omni.py +415 -0
- package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
- package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
- package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
- package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
- package/project/.sdk/tm/py/test/voxgig_omni/runner.py +580 -0
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +252 -0
- package/project/.sdk/tm/rb/test/omni.rb +505 -0
- package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
- package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
- package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
- package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
- package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
- package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
- package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
- package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
- package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
- package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
- package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
- package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
- package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
- package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
- package/project/.sdk/tm/scala/Makefile +16 -6
- package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
- package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
- package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
- package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
- package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
- package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
- package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
- package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
- package/project/.sdk/tm/ts/test/omni.ts +104 -32
- package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
- package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
- package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
- package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
- package/project/.sdk/tm/zig/Makefile +15 -1
- package/project/.sdk/tm/zig/build.zig +23 -5
- package/project/.sdk/tm/zig/core/helpers.zig +52 -11
- package/project/.sdk/tm/zig/core/mem.zig +17 -1
- package/project/.sdk/tm/zig/core/utility.zig +23 -19
- package/project/.sdk/tm/zig/feature/audit.zig +2 -2
- package/project/.sdk/tm/zig/feature/cache.zig +2 -2
- package/project/.sdk/tm/zig/feature/debug.zig +5 -5
- package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
- package/project/.sdk/tm/zig/feature/paging.zig +2 -2
- package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
- package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
- package/project/.sdk/tm/zig/feature/support.zig +3 -3
- package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
- package/project/.sdk/tm/zig/feature/test.zig +10 -5
- package/project/.sdk/tm/zig/test/fh.zig +10 -10
- package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
- package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
- package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
- package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
- package/project/.sdk/tm/zig/test/primary_utility_test.zig +145 -155
- package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
- package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
- package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
- package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
- package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
- package/project/sdkgen-package.json +1 -1
- package/src/action/doctor.ts +66 -2
- package/src/helpers/naming.ts +4 -2
- package/project/.sdk/tm/c/tests/runner.h +0 -274
- package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
- package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
- package/project/.sdk/tm/dart/test/runner.dart +0 -406
- package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
- package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
- package/project/.sdk/tm/go/test/runner_test.go +0 -629
- package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
- package/project/.sdk/tm/java/test/StructRunner.java +0 -281
- package/project/.sdk/tm/js/test/runner.js +0 -387
- package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
- package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
- package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
- package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
- package/project/.sdk/tm/php/test/StructRunner.php +0 -275
- package/project/.sdk/tm/py/test/struct_runner.py +0 -411
- package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
- package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
- package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
- package/project/.sdk/tm/zig/test/struct_runner.zig +0 -464
|
@@ -1,23 +1,88 @@
|
|
|
1
1
|
// ProjectName SDK — drives the primary utility functions against the shared
|
|
2
|
-
// test.json spec (../.sdk/test/test.json, section "primary")
|
|
3
|
-
//
|
|
4
|
-
|
|
2
|
+
// test.json spec (../.sdk/test/test.json, section "primary") through the
|
|
3
|
+
// VENDORED omni runner (test/omni_resolver.hpp over test/vendor/omni).
|
|
4
|
+
// Mirrors java test/PrimaryUtilityTest.java + tm/go/test/primary_utility_test.go.
|
|
5
|
+
//
|
|
6
|
+
// Subjects receive omni's native argument list: a ctx entry arrives as
|
|
7
|
+
// args[0], a MAP — resolver::omni_ctx builds the typed Context a generated
|
|
8
|
+
// utility takes, and resolver::omni_sync_ctx writes the observable ctx
|
|
9
|
+
// state back for `match: {ctx: ...}` assertions (which the resolver has
|
|
10
|
+
// rewritten to `match: {args: [...]}`; see its decision 4). A failing entry
|
|
11
|
+
// throws omni::OmniError naming the entry, which T_RUN records.
|
|
12
|
+
|
|
13
|
+
#include <algorithm>
|
|
5
14
|
#include <memory>
|
|
15
|
+
#include <set>
|
|
6
16
|
#include <string>
|
|
7
17
|
#include <vector>
|
|
8
18
|
|
|
9
|
-
#include "
|
|
19
|
+
#include "omni_resolver.hpp"
|
|
10
20
|
#include "harness.hpp"
|
|
11
21
|
|
|
12
22
|
using namespace sdk;
|
|
13
23
|
using namespace sdk::fh;
|
|
24
|
+
namespace res = sdk::resolver;
|
|
25
|
+
|
|
26
|
+
static const char* TEST_JSON_FILE = "../.sdk/test/test.json";
|
|
14
27
|
|
|
15
|
-
|
|
16
|
-
|
|
28
|
+
// One corpus runner for the whole binary. Its client is the runner's own
|
|
29
|
+
// (only a DEF.client entry would use it); each test still builds the client
|
|
30
|
+
// it drives, because several of them mutate it.
|
|
31
|
+
static res::Run& primaryRun() {
|
|
32
|
+
static res::Run run =
|
|
33
|
+
res::makeRunner(TEST_JSON_FILE, ProjectNameSDK::testSDK())
|
|
34
|
+
.runner("primary", Value::undef());
|
|
35
|
+
return run;
|
|
17
36
|
}
|
|
18
37
|
|
|
19
38
|
static std::shared_ptr<ProjectNameSDK> client() { return ProjectNameSDK::testSDK(); }
|
|
20
39
|
|
|
40
|
+
// args[0], or no value at all (an entry with no in/args/ctx, which this
|
|
41
|
+
// port's omni delivers as one absent argument).
|
|
42
|
+
static Value arg0(std::vector<Value>& args) {
|
|
43
|
+
return args.empty() ? Value::undef() : args[0];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Every corpus section this binary ASKED to run, whether or not the guard
|
|
47
|
+
// below let it through. corpusCoverage() compares it against the fixture,
|
|
48
|
+
// which is the only way a section that NO test names can be noticed: the
|
|
49
|
+
// per-section guard cannot fire for a call nobody wrote.
|
|
50
|
+
static std::set<std::string>& drivenSections() {
|
|
51
|
+
static std::set<std::string> names;
|
|
52
|
+
return names;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Run one corpus section's `basic` group, failing LOUDLY when it would run
|
|
56
|
+
// ZERO cases. A renamed section, a fixture that failed to compile, or an
|
|
57
|
+
// empty set used to report PASS while running no assertions at all — the
|
|
58
|
+
// whole point of a shared oracle lost without a single red test. (The guard
|
|
59
|
+
// lives here rather than in the runner, which is vendored verbatim; the
|
|
60
|
+
// shared corpus is a v0 spec, and v0 tolerates an empty set.)
|
|
61
|
+
static void runsection(const std::string& name, const res::Subject& subject) {
|
|
62
|
+
drivenSections().insert(name);
|
|
63
|
+
|
|
64
|
+
Value section = Helpers::toMapAny(primaryRun().set(name));
|
|
65
|
+
if (!section.is_map()) {
|
|
66
|
+
sdktest::record_fail(name, "test corpus section \"" + name +
|
|
67
|
+
"\" missing - check .sdk/test/primary/");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
Value basic = Helpers::toMapAny(getp(section, Value("basic")));
|
|
71
|
+
Value set = basic.is_map() ? getp(basic, Value("set")) : Value::undef();
|
|
72
|
+
if (!set.is_list()) {
|
|
73
|
+
sdktest::record_fail(name, "test corpus section \"" + name +
|
|
74
|
+
"\" has no basic.set list - zero cases would run");
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (set.as_list()->empty()) {
|
|
78
|
+
sdktest::record_fail(name, "test corpus section \"" + name +
|
|
79
|
+
"\" is EMPTY - zero cases would run");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
sdktest::checks()++;
|
|
83
|
+
primaryRun().runsetflags(name, basic, true, subject);
|
|
84
|
+
}
|
|
85
|
+
|
|
21
86
|
// Helper: create basic test context.
|
|
22
87
|
static CtxPtr makeTestCtx(std::shared_ptr<ProjectNameSDK> client_, UtilityPtr utility) {
|
|
23
88
|
CtxSpec cs;
|
|
@@ -104,15 +169,29 @@ static void cleanBasic() {
|
|
|
104
169
|
ASSERT_TRUE(cleaned.is_map(), "cleaned should not be null");
|
|
105
170
|
}
|
|
106
171
|
|
|
172
|
+
// The shared corpus drives the same function over four shapes the stub above
|
|
173
|
+
// cannot reach — an empty map, a bare string, a list — and asserts the value
|
|
174
|
+
// that comes back, not merely that one does. (The ts and java peers pair the
|
|
175
|
+
// stub with this section the same way.)
|
|
176
|
+
static void cleanCorpus() {
|
|
177
|
+
auto c = client();
|
|
178
|
+
UtilityPtr utility = c->getUtility();
|
|
179
|
+
runsection("clean", [&](std::vector<Value>& args) -> Value {
|
|
180
|
+
if (2 != args.size()) {
|
|
181
|
+
throw std::runtime_error("clean: expected 2 args, got " + std::to_string(args.size()));
|
|
182
|
+
}
|
|
183
|
+
CtxPtr ctx = res::omni_ctx(args[0], c, utility);
|
|
184
|
+
return utility->clean(ctx, args[1]);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
107
188
|
// --- done -------------------------------------------------------------------
|
|
108
189
|
|
|
109
190
|
static void doneBasic() {
|
|
110
191
|
auto c = client();
|
|
111
192
|
UtilityPtr utility = c->getUtility();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
115
|
-
rs::fixctx(ctx, c);
|
|
193
|
+
runsection("done", [&](std::vector<Value>& args) -> Value {
|
|
194
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
116
195
|
return utility->done(ctx);
|
|
117
196
|
});
|
|
118
197
|
}
|
|
@@ -122,19 +201,14 @@ static void doneBasic() {
|
|
|
122
201
|
static void makeErrorBasic() {
|
|
123
202
|
auto c = client();
|
|
124
203
|
UtilityPtr utility = c->getUtility();
|
|
125
|
-
|
|
126
|
-
Value
|
|
127
|
-
if (!args.is_list()) args = vlist();
|
|
128
|
-
if (args.as_list()->empty()) args.as_list()->push_back(vmap());
|
|
129
|
-
|
|
130
|
-
Value ctxmap = Helpers::toMapAny(vs::getelem(args, Value(int64_t(0))));
|
|
204
|
+
runsection("makeError", [&](std::vector<Value>& args) -> Value {
|
|
205
|
+
Value ctxmap = Helpers::toMapAny(arg0(args));
|
|
131
206
|
if (!ctxmap.is_map()) ctxmap = vmap();
|
|
132
|
-
CtxPtr ctx =
|
|
133
|
-
rs::fixctx(ctx, c);
|
|
207
|
+
CtxPtr ctx = res::omni_ctx(ctxmap, c, utility);
|
|
134
208
|
|
|
135
209
|
SdkErrorPtr err;
|
|
136
|
-
if (args.
|
|
137
|
-
err = errFromMap(Helpers::toMapAny(
|
|
210
|
+
if (args.size() > 1) {
|
|
211
|
+
err = errFromMap(Helpers::toMapAny(args[1]));
|
|
138
212
|
}
|
|
139
213
|
return utility->makeError(ctx, err);
|
|
140
214
|
});
|
|
@@ -283,9 +357,8 @@ static void fetcherBlockedTestMode() {
|
|
|
283
357
|
static void makeContextBasic() {
|
|
284
358
|
auto c = client();
|
|
285
359
|
UtilityPtr utility = c->getUtility();
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
Value in = Helpers::toMapAny(getp(entry, "in"));
|
|
360
|
+
runsection("makeContext", [&](std::vector<Value>& args) -> Value {
|
|
361
|
+
Value in = Helpers::toMapAny(arg0(args));
|
|
289
362
|
if (!in.is_map()) return Value::undef();
|
|
290
363
|
CtxPtr ctx = rs::make_ctx_from_map(in, c, utility);
|
|
291
364
|
Value out = vmap();
|
|
@@ -354,9 +427,8 @@ static void makeFetchDefWithBody() {
|
|
|
354
427
|
static void makeOptionsBasic() {
|
|
355
428
|
auto c = client();
|
|
356
429
|
UtilityPtr utility = c->getUtility();
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
Value in = Helpers::toMapAny(getp(entry, "in"));
|
|
430
|
+
runsection("makeOptions", [&](std::vector<Value>& args) -> Value {
|
|
431
|
+
Value in = Helpers::toMapAny(arg0(args));
|
|
360
432
|
CtxSpec cs;
|
|
361
433
|
if (in.is_map()) {
|
|
362
434
|
Value opt = Helpers::toMapAny(getp(in, "options"));
|
|
@@ -376,19 +448,13 @@ static void makeOptionsBasic() {
|
|
|
376
448
|
static void makeRequestBasic() {
|
|
377
449
|
auto c = client();
|
|
378
450
|
UtilityPtr utility = c->getUtility();
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
382
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
451
|
+
runsection("makeRequest", [&](std::vector<Value>& args) -> Value {
|
|
452
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
383
453
|
ctx->options = c->optionsMap();
|
|
384
454
|
|
|
385
455
|
utility->makeRequest(ctx);
|
|
386
456
|
|
|
387
|
-
|
|
388
|
-
if (entryCtx.is_map()) {
|
|
389
|
-
if (ctx->response) map_put(entryCtx, "response", Value("exists"));
|
|
390
|
-
if (ctx->result) map_put(entryCtx, "result", Value("exists"));
|
|
391
|
-
}
|
|
457
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
392
458
|
return Value::undef();
|
|
393
459
|
});
|
|
394
460
|
}
|
|
@@ -398,23 +464,12 @@ static void makeRequestBasic() {
|
|
|
398
464
|
static void makeResponseBasic() {
|
|
399
465
|
auto c = client();
|
|
400
466
|
UtilityPtr utility = c->getUtility();
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
404
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
405
|
-
rs::fixctx(ctx, c);
|
|
467
|
+
runsection("makeResponse", [&](std::vector<Value>& args) -> Value {
|
|
468
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
406
469
|
|
|
407
470
|
utility->makeResponse(ctx);
|
|
408
471
|
|
|
409
|
-
|
|
410
|
-
if (entryCtx.is_map() && ctx->result) {
|
|
411
|
-
map_put(entryCtx, "result", fhMap({
|
|
412
|
-
{"ok", Value(ctx->result->ok)},
|
|
413
|
-
{"status", Value(ctx->result->status)},
|
|
414
|
-
{"statusText", Value(ctx->result->statusText)},
|
|
415
|
-
{"headers", ctx->result->headers},
|
|
416
|
-
{"body", ctx->result->body}}));
|
|
417
|
-
}
|
|
472
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
418
473
|
return Value::undef();
|
|
419
474
|
});
|
|
420
475
|
}
|
|
@@ -482,52 +537,47 @@ static void makeResultNoResult() {
|
|
|
482
537
|
// --- makeSpec ---------------------------------------------------------------
|
|
483
538
|
|
|
484
539
|
static void makeSpecBasic() {
|
|
485
|
-
|
|
540
|
+
// omni stamps ctx.client with PRESENCE, not identity, so a DEF-built
|
|
541
|
+
// client cannot be read back out of the ctx map: this section's
|
|
542
|
+
// specially-optioned client is constructed here (resolver decision 5).
|
|
543
|
+
Value setupOpts = rs::get_spec(primaryRun().spec, {"makeSpec", "DEF", "setup", "a"});
|
|
486
544
|
auto specClient = ProjectNameSDK::testSDK(Value::undef(), setupOpts);
|
|
487
545
|
UtilityPtr specUtility = specClient->getUtility();
|
|
488
546
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
492
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, specClient, specUtility);
|
|
547
|
+
runsection("makeSpec", [&](std::vector<Value>& args) -> Value {
|
|
548
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), specClient, specUtility);
|
|
493
549
|
ctx->options = specClient->optionsMap();
|
|
494
550
|
|
|
495
551
|
specUtility->makeSpec(ctx);
|
|
496
552
|
|
|
497
|
-
|
|
498
|
-
if (entryCtx.is_map() && ctx->spec) {
|
|
499
|
-
map_put(entryCtx, "spec", fhMap({
|
|
500
|
-
{"base", Value(ctx->spec->base)},
|
|
501
|
-
{"prefix", Value(ctx->spec->prefix)},
|
|
502
|
-
{"suffix", Value(ctx->spec->suffix)},
|
|
503
|
-
{"method", Value(ctx->spec->method)},
|
|
504
|
-
{"params", ctx->spec->params},
|
|
505
|
-
{"query", ctx->spec->query},
|
|
506
|
-
{"headers", ctx->spec->headers},
|
|
507
|
-
{"step", Value(ctx->spec->step)}}));
|
|
508
|
-
}
|
|
553
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
509
554
|
return Value::undef();
|
|
510
555
|
});
|
|
511
556
|
}
|
|
512
557
|
|
|
513
558
|
// --- makePoint --------------------------------------------------------------
|
|
514
559
|
|
|
560
|
+
// Corpus-driven, like ts and java. Each entry carries the WHOLE endpoint
|
|
561
|
+
// lookup in its ctx — the API config, the entity it hangs off, the options
|
|
562
|
+
// that gate the operation, and the match/reqmatch that select among several
|
|
563
|
+
// points — which rs::make_ctx_from_map materialises (the entity cannot
|
|
564
|
+
// travel as a plain map: Context resolves the op through Entity::getName).
|
|
565
|
+
// Four of the seven entries assert a chosen point; three assert a REFUSAL
|
|
566
|
+
// the retired stub could not reach at all, since it only ever asserted that
|
|
567
|
+
// some point came back. TS returns the error AS the value while cpp throws
|
|
568
|
+
// an SdkErrorPtr, so the error is normalised to a map carrying its code
|
|
569
|
+
// rather than forking the fixture per language.
|
|
515
570
|
static void makePointBasic() {
|
|
516
571
|
auto c = client();
|
|
517
572
|
UtilityPtr utility = c->getUtility();
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
{"
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
{"transform", vmap()}});
|
|
527
|
-
ctx->op->points = std::vector<Value>{point};
|
|
528
|
-
|
|
529
|
-
utility->makePoint(ctx);
|
|
530
|
-
ASSERT_TRUE(ctx->point.is_map(), "expected point to be set");
|
|
573
|
+
runsection("makePoint", [&](std::vector<Value>& args) -> Value {
|
|
574
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
575
|
+
try {
|
|
576
|
+
return utility->makePoint(ctx);
|
|
577
|
+
} catch (const SdkErrorPtr& err) {
|
|
578
|
+
return fhMap({{"code", Value(err->code)}});
|
|
579
|
+
}
|
|
580
|
+
});
|
|
531
581
|
}
|
|
532
582
|
|
|
533
583
|
// --- makeUrl ----------------------------------------------------------------
|
|
@@ -535,10 +585,8 @@ static void makePointBasic() {
|
|
|
535
585
|
static void makeUrlBasic() {
|
|
536
586
|
auto c = client();
|
|
537
587
|
UtilityPtr utility = c->getUtility();
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
541
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
588
|
+
runsection("makeUrl", [&](std::vector<Value>& args) -> Value {
|
|
589
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
542
590
|
if (!ctx->result) ctx->result = std::make_shared<Result>(vmap());
|
|
543
591
|
return Value(utility->makeUrl(ctx));
|
|
544
592
|
});
|
|
@@ -547,9 +595,8 @@ static void makeUrlBasic() {
|
|
|
547
595
|
// --- operator ---------------------------------------------------------------
|
|
548
596
|
|
|
549
597
|
static void operatorBasic() {
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
Value in = Helpers::toMapAny(getp(entry, "in"));
|
|
598
|
+
runsection("operator", [&](std::vector<Value>& args) -> Value {
|
|
599
|
+
Value in = Helpers::toMapAny(arg0(args));
|
|
553
600
|
Operation op(in.is_map() ? in : vmap());
|
|
554
601
|
return fhMap({
|
|
555
602
|
{"entity", Value(op.entity)},
|
|
@@ -564,34 +611,17 @@ static void operatorBasic() {
|
|
|
564
611
|
static void paramBasic() {
|
|
565
612
|
auto c = client();
|
|
566
613
|
UtilityPtr utility = c->getUtility();
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
Value args = getp(entry, "args");
|
|
570
|
-
if (!args.is_list() || args.as_list()->size() < 2) return Value::undef();
|
|
614
|
+
runsection("param", [&](std::vector<Value>& args) -> Value {
|
|
615
|
+
if (args.size() < 2) return Value::undef();
|
|
571
616
|
|
|
572
|
-
Value ctxmap = Helpers::toMapAny(
|
|
617
|
+
Value ctxmap = Helpers::toMapAny(arg0(args));
|
|
573
618
|
if (!ctxmap.is_map()) ctxmap = vmap();
|
|
574
|
-
CtxPtr ctx =
|
|
575
|
-
Value paramdef =
|
|
619
|
+
CtxPtr ctx = res::omni_ctx(ctxmap, c, utility);
|
|
620
|
+
Value paramdef = args[1];
|
|
576
621
|
|
|
577
622
|
Value result = utility->param(ctx, paramdef);
|
|
578
623
|
|
|
579
|
-
|
|
580
|
-
Value matchSpec = Helpers::toMapAny(getp(entry, "match"));
|
|
581
|
-
if (matchSpec.is_map()) {
|
|
582
|
-
Value ctxMatch = Helpers::toMapAny(getp(matchSpec, "ctx"));
|
|
583
|
-
if (ctxMatch.is_map()) {
|
|
584
|
-
Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
|
|
585
|
-
if (!entryCtx.is_map()) {
|
|
586
|
-
entryCtx = vmap();
|
|
587
|
-
map_put(entry, "ctx", entryCtx);
|
|
588
|
-
}
|
|
589
|
-
Value specMatch = Helpers::toMapAny(getp(ctxMatch, "spec"));
|
|
590
|
-
if (specMatch.is_map() && ctx->spec && getp(specMatch, "alias").is_map()) {
|
|
591
|
-
map_put(entryCtx, "spec", fhMap({{"alias", ctx->spec->alias}}));
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
}
|
|
624
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
595
625
|
return result;
|
|
596
626
|
});
|
|
597
627
|
}
|
|
@@ -599,22 +629,17 @@ static void paramBasic() {
|
|
|
599
629
|
// --- prepareAuth ------------------------------------------------------------
|
|
600
630
|
|
|
601
631
|
static void prepareAuthBasic() {
|
|
602
|
-
|
|
632
|
+
// Constructed at the call site: see the note on makeSpec above.
|
|
633
|
+
Value setupOpts = rs::get_spec(primaryRun().spec, {"prepareAuth", "DEF", "setup", "a"});
|
|
603
634
|
auto authClient = ProjectNameSDK::testSDK(Value::undef(), setupOpts);
|
|
604
635
|
UtilityPtr authUtility = authClient->getUtility();
|
|
605
636
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
609
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, authClient, authUtility);
|
|
610
|
-
rs::fixctx(ctx, authClient);
|
|
637
|
+
runsection("prepareAuth", [&](std::vector<Value>& args) -> Value {
|
|
638
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), authClient, authUtility);
|
|
611
639
|
|
|
612
640
|
authUtility->prepareAuth(ctx);
|
|
613
641
|
|
|
614
|
-
|
|
615
|
-
if (entryCtx.is_map() && ctx->spec) {
|
|
616
|
-
map_put(entryCtx, "spec", fhMap({{"headers", ctx->spec->headers}}));
|
|
617
|
-
}
|
|
642
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
618
643
|
return Value::undef();
|
|
619
644
|
});
|
|
620
645
|
}
|
|
@@ -624,11 +649,8 @@ static void prepareAuthBasic() {
|
|
|
624
649
|
static void prepareBodyBasic() {
|
|
625
650
|
auto c = client();
|
|
626
651
|
UtilityPtr utility = c->getUtility();
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
630
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
631
|
-
rs::fixctx(ctx, c);
|
|
652
|
+
runsection("prepareBody", [&](std::vector<Value>& args) -> Value {
|
|
653
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
632
654
|
return utility->prepareBody(ctx);
|
|
633
655
|
});
|
|
634
656
|
}
|
|
@@ -636,10 +658,8 @@ static void prepareBodyBasic() {
|
|
|
636
658
|
static void prepareHeadersBasic() {
|
|
637
659
|
auto c = client();
|
|
638
660
|
UtilityPtr utility = c->getUtility();
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
642
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
661
|
+
runsection("prepareHeaders", [&](std::vector<Value>& args) -> Value {
|
|
662
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
643
663
|
return utility->prepareHeaders(ctx);
|
|
644
664
|
});
|
|
645
665
|
}
|
|
@@ -647,21 +667,21 @@ static void prepareHeadersBasic() {
|
|
|
647
667
|
static void prepareMethodBasic() {
|
|
648
668
|
auto c = client();
|
|
649
669
|
UtilityPtr utility = c->getUtility();
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
670
|
+
runsection("prepareMethod", [&](std::vector<Value>& args) -> Value {
|
|
671
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
672
|
+
// An op the API does not define resolves NO method; ts answers
|
|
673
|
+
// undefined there and C++ answers "" — both are "no value" to the
|
|
674
|
+
// corpus (the go subject does the same).
|
|
675
|
+
std::string method = utility->prepareMethod(ctx);
|
|
676
|
+
return method.empty() ? Value::undef() : Value(method);
|
|
655
677
|
});
|
|
656
678
|
}
|
|
657
679
|
|
|
658
680
|
static void prepareParamsBasic() {
|
|
659
681
|
auto c = client();
|
|
660
682
|
UtilityPtr utility = c->getUtility();
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
664
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
683
|
+
runsection("prepareParams", [&](std::vector<Value>& args) -> Value {
|
|
684
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
665
685
|
return utility->prepareParams(ctx);
|
|
666
686
|
});
|
|
667
687
|
}
|
|
@@ -673,10 +693,8 @@ static void preparePathBasic() {
|
|
|
673
693
|
// preparePath fixture shipped as an empty `set: []`).
|
|
674
694
|
auto c = client();
|
|
675
695
|
UtilityPtr utility = c->getUtility();
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
679
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
696
|
+
runsection("preparePath", [&](std::vector<Value>& args) -> Value {
|
|
697
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
680
698
|
return Value(utility->preparePath(ctx));
|
|
681
699
|
});
|
|
682
700
|
}
|
|
@@ -686,10 +704,8 @@ static void preparePathBasic() {
|
|
|
686
704
|
static void prepareQueryBasic() {
|
|
687
705
|
auto c = client();
|
|
688
706
|
UtilityPtr utility = c->getUtility();
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
692
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
707
|
+
runsection("prepareQuery", [&](std::vector<Value>& args) -> Value {
|
|
708
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
693
709
|
return utility->prepareQuery(ctx);
|
|
694
710
|
});
|
|
695
711
|
}
|
|
@@ -699,11 +715,8 @@ static void prepareQueryBasic() {
|
|
|
699
715
|
static void resultBasicBasic() {
|
|
700
716
|
auto c = client();
|
|
701
717
|
UtilityPtr utility = c->getUtility();
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
705
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
706
|
-
rs::fixctx(ctx, c);
|
|
718
|
+
runsection("resultBasic", [&](std::vector<Value>& args) -> Value {
|
|
719
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
707
720
|
|
|
708
721
|
ResultPtr result = utility->resultBasic(ctx);
|
|
709
722
|
|
|
@@ -718,17 +731,12 @@ static void resultBasicBasic() {
|
|
|
718
731
|
static void resultBodyBasic() {
|
|
719
732
|
auto c = client();
|
|
720
733
|
UtilityPtr utility = c->getUtility();
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
724
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
734
|
+
runsection("resultBody", [&](std::vector<Value>& args) -> Value {
|
|
735
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
725
736
|
|
|
726
737
|
utility->resultBody(ctx);
|
|
727
738
|
|
|
728
|
-
|
|
729
|
-
if (entryCtx.is_map() && ctx->result) {
|
|
730
|
-
map_put(entryCtx, "result", fhMap({{"body", ctx->result->body}}));
|
|
731
|
-
}
|
|
739
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
732
740
|
return Value::undef();
|
|
733
741
|
});
|
|
734
742
|
}
|
|
@@ -736,17 +744,12 @@ static void resultBodyBasic() {
|
|
|
736
744
|
static void resultHeadersBasic() {
|
|
737
745
|
auto c = client();
|
|
738
746
|
UtilityPtr utility = c->getUtility();
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
742
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
747
|
+
runsection("resultHeaders", [&](std::vector<Value>& args) -> Value {
|
|
748
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
743
749
|
|
|
744
750
|
utility->resultHeaders(ctx);
|
|
745
751
|
|
|
746
|
-
|
|
747
|
-
if (entryCtx.is_map() && ctx->result) {
|
|
748
|
-
map_put(entryCtx, "result", fhMap({{"headers", ctx->result->headers}}));
|
|
749
|
-
}
|
|
752
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
750
753
|
return Value::undef();
|
|
751
754
|
});
|
|
752
755
|
}
|
|
@@ -756,18 +759,12 @@ static void resultHeadersBasic() {
|
|
|
756
759
|
static void transformRequestBasic() {
|
|
757
760
|
auto c = client();
|
|
758
761
|
UtilityPtr utility = c->getUtility();
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
762
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
762
|
+
runsection("transformRequest", [&](std::vector<Value>& args) -> Value {
|
|
763
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
763
764
|
|
|
764
765
|
Value result = utility->transformRequest(ctx);
|
|
765
766
|
|
|
766
|
-
|
|
767
|
-
if (entryCtx.is_map() && ctx->spec) {
|
|
768
|
-
Value specMap = Helpers::toMapAny(getp(entryCtx, "spec"));
|
|
769
|
-
if (specMap.is_map()) map_put(specMap, "step", Value(ctx->spec->step));
|
|
770
|
-
}
|
|
767
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
771
768
|
return result;
|
|
772
769
|
});
|
|
773
770
|
}
|
|
@@ -775,25 +772,84 @@ static void transformRequestBasic() {
|
|
|
775
772
|
static void transformResponseBasic() {
|
|
776
773
|
auto c = client();
|
|
777
774
|
UtilityPtr utility = c->getUtility();
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
|
|
781
|
-
CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
|
|
775
|
+
runsection("transformResponse", [&](std::vector<Value>& args) -> Value {
|
|
776
|
+
CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
|
|
782
777
|
|
|
783
778
|
Value result = utility->transformResponse(ctx);
|
|
784
779
|
|
|
785
|
-
|
|
786
|
-
if (entryCtx.is_map() && ctx->spec) {
|
|
787
|
-
Value specMap = Helpers::toMapAny(getp(entryCtx, "spec"));
|
|
788
|
-
if (specMap.is_map()) map_put(specMap, "step", Value(ctx->spec->step));
|
|
789
|
-
}
|
|
780
|
+
res::omni_sync_ctx(arg0(args), ctx);
|
|
790
781
|
return result;
|
|
791
782
|
});
|
|
792
783
|
}
|
|
793
784
|
|
|
785
|
+
// --- whole-corpus coverage --------------------------------------------------
|
|
786
|
+
|
|
787
|
+
// Sections under `primary` that are NOT this SDK's pipeline surface, with the
|
|
788
|
+
// reason each is exempt. `check` is omni's OWN runner fixture (it comes from
|
|
789
|
+
// .sdk/test/struct/test.aon, which the corpus build merges into primary); no
|
|
790
|
+
// port drives it from a primary suite.
|
|
791
|
+
static const std::vector<std::string>& notThisSuite() {
|
|
792
|
+
static const std::vector<std::string> names = {"check"};
|
|
793
|
+
return names;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
static std::string joinnames(const std::vector<std::string>& names) {
|
|
797
|
+
std::string out;
|
|
798
|
+
for (const auto& name : names) {
|
|
799
|
+
if (!out.empty()) out += ", ";
|
|
800
|
+
out += name;
|
|
801
|
+
}
|
|
802
|
+
return out;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
// The guard the PER-SECTION one cannot be. runsection() only fires for a
|
|
806
|
+
// section some test actually names, so a section no test names is invisible
|
|
807
|
+
// to it: `clean` (4 entries) and `makePoint` (7) sat undriven behind
|
|
808
|
+
// hand-written stubs while this binary reported "67 cases driven" — a number
|
|
809
|
+
// that was the sum of the sections it happened to call, and so could not
|
|
810
|
+
// tell full coverage from partial. Comparing the fixture against what was
|
|
811
|
+
// actually driven is what makes that line evidence.
|
|
812
|
+
static void corpusCoverage() {
|
|
813
|
+
Value spec = primaryRun().spec;
|
|
814
|
+
ASSERT_TRUE(spec.is_map(), "primary corpus did not resolve - no coverage to check");
|
|
815
|
+
if (!spec.is_map()) return;
|
|
816
|
+
|
|
817
|
+
std::vector<std::string> sections = Struct::keysof(spec);
|
|
818
|
+
ASSERT_TRUE(!sections.empty(), "primary corpus has NO sections - check ../.sdk/test/test.json");
|
|
819
|
+
|
|
820
|
+
std::vector<std::string> undriven;
|
|
821
|
+
std::vector<std::string> staleskip;
|
|
822
|
+
|
|
823
|
+
for (const auto& name : sections) {
|
|
824
|
+
Value section = Helpers::toMapAny(getp(spec, Value(name)));
|
|
825
|
+
Value basic = section.is_map() ? Helpers::toMapAny(getp(section, Value("basic"))) : Value::undef();
|
|
826
|
+
Value set = basic.is_map() ? getp(basic, Value("set")) : Value::undef();
|
|
827
|
+
bool hascases = set.is_list() && !set.as_list()->empty();
|
|
828
|
+
|
|
829
|
+
const auto& exempt = notThisSuite();
|
|
830
|
+
if (std::find(exempt.begin(), exempt.end(), name) != exempt.end()) {
|
|
831
|
+
// The exemption has to keep earning itself: a name that lost its cases
|
|
832
|
+
// (or was renamed away) no longer needs one, and a list nobody prunes
|
|
833
|
+
// is how the next hole gets excused.
|
|
834
|
+
if (!hascases) staleskip.push_back(name);
|
|
835
|
+
continue;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
if (hascases && 0 == drivenSections().count(name)) undriven.push_back(name);
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
ASSERT_TRUE(undriven.empty(),
|
|
842
|
+
"primary corpus sections carry cases that NO test drives: " + joinnames(undriven) +
|
|
843
|
+
" - add a runsection() call; until then the \"cases driven\" count is not coverage");
|
|
844
|
+
ASSERT_TRUE(staleskip.empty(),
|
|
845
|
+
"these names are exempt from the coverage check but no longer carry cases: " +
|
|
846
|
+
joinnames(staleskip) + " - drop them from notThisSuite()");
|
|
847
|
+
}
|
|
848
|
+
|
|
794
849
|
int main() {
|
|
795
850
|
T_RUN(exists);
|
|
796
851
|
T_RUN(cleanBasic);
|
|
852
|
+
T_RUN(cleanCorpus);
|
|
797
853
|
T_RUN(doneBasic);
|
|
798
854
|
T_RUN(makeErrorBasic);
|
|
799
855
|
T_RUN(makeErrorNoThrow);
|
|
@@ -829,5 +885,8 @@ int main() {
|
|
|
829
885
|
T_RUN(resultHeadersBasic);
|
|
830
886
|
T_RUN(transformRequestBasic);
|
|
831
887
|
T_RUN(transformResponseBasic);
|
|
888
|
+
// LAST: it reads what every test above actually drove.
|
|
889
|
+
T_RUN(corpusCoverage);
|
|
890
|
+
std::cout << "primary corpus: " << res::cases() << " cases driven\n";
|
|
832
891
|
return sdktest::summary("primary_utility_test");
|
|
833
892
|
}
|