@voxgig/sdkgen 4.8.3 → 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/package.json +1 -1
- package/project/.sdk/model/target/zig.aon +9 -0
- 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/tests/vendor/omni/json.c +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
- package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
- package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
- package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +2 -2
- package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +2 -2
- package/project/.sdk/tm/dart/test/vendor/omni/util.dart +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +4 -4
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +4 -5
- package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +3 -3
- package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +3 -4
- package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +5 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +31 -2
- package/project/.sdk/tm/go/test/omni/omni.go +8 -3
- package/project/.sdk/tm/go/test/omni/util.go +25 -4
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
- package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
- package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
- package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
- package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
- package/project/.sdk/tm/js/src/utility/StructUtility.js +2 -2
- package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
- package/project/.sdk/tm/js/test/vendor/omni/runner.js +18 -3
- package/project/.sdk/tm/js/test/vendor/omni/util.js +25 -8
- package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
- package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
- package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
- package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
- package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
- package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
- package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
- package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
- package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
- package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
- package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +3 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +3 -3
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +3 -4
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +4 -6
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +21 -1
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/runner.py +16 -2
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +27 -12
- package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
- package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
- package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
- package/project/.sdk/tm/ts/src/utility/StructUtility.ts +2 -2
- package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
- 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 +144 -154
- 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/project/.sdk/tm/zig/test/struct_runner.zig +0 -465
|
@@ -93,12 +93,12 @@ const FetchRec = struct {
|
|
|
93
93
|
calls: std.ArrayList(Value),
|
|
94
94
|
fn call(p: *anyopaque, _: std.mem.Allocator, arg: Value) anyerror!Value {
|
|
95
95
|
const self: *FetchRec = @ptrCast(@alignCast(p));
|
|
96
|
-
self.calls.append(arg) catch {};
|
|
96
|
+
self.calls.append(h.A(), arg) catch {};
|
|
97
97
|
return h.jo(&.{ .{ "status", h.vnum(200) }, .{ "statusText", h.vstr("OK") } });
|
|
98
98
|
}
|
|
99
99
|
fn new() *FetchRec {
|
|
100
100
|
const s = h.A().create(FetchRec) catch unreachable;
|
|
101
|
-
s.* = .{ .calls =
|
|
101
|
+
s.* = .{ .calls = .empty };
|
|
102
102
|
return s;
|
|
103
103
|
}
|
|
104
104
|
fn fn_val(self: *FetchRec) Value {
|
|
@@ -283,7 +283,7 @@ test "primary feature_hook basic" {
|
|
|
283
283
|
var hooked = false;
|
|
284
284
|
var inited = false;
|
|
285
285
|
client.features.clearRetainingCapacity();
|
|
286
|
-
client.features.append(ProbeFeature.make("probe", true, &hooked, &inited)) catch unreachable;
|
|
286
|
+
client.features.append(h.A(), ProbeFeature.make("probe", true, &hooked, &inited)) catch unreachable;
|
|
287
287
|
|
|
288
288
|
utility.feature_hook(ctx, "TestHook");
|
|
289
289
|
try testing.expect(hooked);
|
|
@@ -353,9 +353,17 @@ test "primary new sdk smoke" {
|
|
|
353
353
|
// cannot drift from the reference implementation. That is what moves zig from
|
|
354
354
|
// the MIRRORED parity tier to FULL: a mirrored suite cannot notice a corpus
|
|
355
355
|
// case that changed, or one that was added.
|
|
356
|
+
//
|
|
357
|
+
// The ENGINE is vendored @voxgig/omni, driven through test/omniresolver.zig
|
|
358
|
+
// (its header carries the adapter decisions). A subject here receives omni's
|
|
359
|
+
// own argument list - the contextified `ctx`, the entry's `args`, or its `in`
|
|
360
|
+
// - builds the typed SDK context at the call site, and publishes the
|
|
361
|
+
// observable ctx state back through `po` so a `match: {ctx: ...}` assertion
|
|
362
|
+
// has something to read.
|
|
356
363
|
// ---------------------------------------------------------------------------
|
|
357
364
|
|
|
358
|
-
const
|
|
365
|
+
const omni = @import("omni");
|
|
366
|
+
const omnirun = @import("omniresolver.zig");
|
|
359
367
|
const vs = @import("voxgig-struct");
|
|
360
368
|
|
|
361
369
|
const StdJson = std.json.Value;
|
|
@@ -453,70 +461,63 @@ fn corpusCtxOpts(alloc: std.mem.Allocator, ctxstd: StdJson, sdkopts: sdk.Value)
|
|
|
453
461
|
|
|
454
462
|
/// Publish a neutral-named view of the mutated ctx, for `match: ctx.*`.
|
|
455
463
|
fn publishCtx(alloc: std.mem.Allocator, ctx: *sdk.Context) !StdJson {
|
|
456
|
-
var out
|
|
457
|
-
if (ctx.spec) |sp| try out.put("spec", try vs.toStdJson(alloc, sp.to_value()));
|
|
458
|
-
if (ctx.result) |rt| try out.put("result", try vs.toStdJson(alloc, rt.to_value()));
|
|
464
|
+
var out: std.json.ObjectMap = .empty;
|
|
465
|
+
if (ctx.spec) |sp| try out.put(alloc, "spec", try vs.toStdJson(alloc, sp.to_value()));
|
|
466
|
+
if (ctx.result) |rt| try out.put(alloc, "result", try vs.toStdJson(alloc, rt.to_value()));
|
|
459
467
|
if (ctx.response) |rs| {
|
|
460
468
|
// makeRequest asserts `ctx.response: __EXISTS__`, so the response has
|
|
461
469
|
// to appear here at all; publish a neutral view of it while we are at
|
|
462
470
|
// it, since the corpus is camelCase and this port stores status_text.
|
|
463
|
-
var r
|
|
464
|
-
try r.put("status", StdJson{ .integer = @intCast(rs.status) });
|
|
465
|
-
try r.put("statusText", StdJson{ .string = rs.status_text });
|
|
466
|
-
try r.put("headers", try vs.toStdJson(alloc, rs.headers));
|
|
467
|
-
try r.put("body", try vs.toStdJson(alloc, rs.body));
|
|
468
|
-
try out.put("response", StdJson{ .object = r });
|
|
471
|
+
var r: std.json.ObjectMap = .empty;
|
|
472
|
+
try r.put(alloc, "status", StdJson{ .integer = @intCast(rs.status) });
|
|
473
|
+
try r.put(alloc, "statusText", StdJson{ .string = rs.status_text });
|
|
474
|
+
try r.put(alloc, "headers", try vs.toStdJson(alloc, rs.headers));
|
|
475
|
+
try r.put(alloc, "body", try vs.toStdJson(alloc, rs.body));
|
|
476
|
+
try out.put(alloc, "response", StdJson{ .object = r });
|
|
469
477
|
}
|
|
470
478
|
return StdJson{ .object = out };
|
|
471
479
|
}
|
|
472
480
|
|
|
473
|
-
/// A section's
|
|
474
|
-
///
|
|
475
|
-
///
|
|
476
|
-
fn
|
|
477
|
-
const sec = spec.get(name) orelse return error.NoSection;
|
|
478
|
-
if (sec != .object) return error.NoSection;
|
|
479
|
-
return sec.object.get("basic") orelse error.NoSection;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
/// A section's DEF.setup.a block, as SDK options.
|
|
483
|
-
fn setupOpts(a_unused: std.mem.Allocator, spec: runner.Spec, name: []const u8) !sdk.Value {
|
|
481
|
+
/// A section's DEF.setup.a block, as SDK options. Read straight off the
|
|
482
|
+
/// loaded spec, BEFORE omni's null normalisation — a DEF block is
|
|
483
|
+
/// configuration, not a test entry.
|
|
484
|
+
fn setupOpts(r: *const omnirun.Runner, name: []const u8) !sdk.Value {
|
|
484
485
|
// The SDK's own arena, not the testing allocator: these values outlive the
|
|
485
486
|
// call and are owned by the SDK for the run, so allocating them from the
|
|
486
487
|
// test allocator reports a leak at teardown.
|
|
487
|
-
_ = a_unused;
|
|
488
488
|
const a = h.A();
|
|
489
|
-
const
|
|
490
|
-
|
|
491
|
-
const def = sec.object.get("DEF") orelse return sdk.Value{ .null = {} };
|
|
492
|
-
if (def != .object) return sdk.Value{ .null = {} };
|
|
493
|
-
const setup = def.object.get("setup") orelse return sdk.Value{ .null = {} };
|
|
494
|
-
if (setup != .object) return sdk.Value{ .null = {} };
|
|
495
|
-
const aa = setup.object.get("a") orelse return sdk.Value{ .null = {} };
|
|
489
|
+
const setup = omni.jget(omni.jget(omni.jget(r.spec(), name), "DEF"), "setup");
|
|
490
|
+
const aa = omni.jget(setup, "a") orelse return sdk.Value{ .null = {} };
|
|
496
491
|
return try vs.fromStdJson(a, aa);
|
|
497
492
|
}
|
|
498
493
|
|
|
494
|
+
/// One positional argument of the entry, as omni resolved it: the
|
|
495
|
+
/// contextified `ctx`, an element of `args`, or `in`. Absent reads as null,
|
|
496
|
+
/// which is what every one of these subjects did with a missing field.
|
|
497
|
+
fn entryarg(args: []const StdJson, index: usize) StdJson {
|
|
498
|
+
if (index < args.len) return args[index];
|
|
499
|
+
return StdJson{ .null = {} };
|
|
500
|
+
}
|
|
501
|
+
|
|
499
502
|
var setup_spec: sdk.Value = .{ .null = {} };
|
|
500
503
|
var setup_auth: sdk.Value = .{ .null = {} };
|
|
501
504
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
}
|
|
505
|
+
// The shared primary corpus is the same fixture set in every SDK, so these
|
|
506
|
+
// are real numbers rather than token ones. A legitimate drop below them is a
|
|
507
|
+
// corpus change worth reading.
|
|
508
|
+
const CASES_FLOOR = 60;
|
|
509
|
+
const SECTIONS_FLOOR = 20;
|
|
508
510
|
|
|
509
511
|
test "primary corpus: the shared cases drive this SDK's utilities" {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
defer pack.deinit();
|
|
512
|
+
var run = try omnirun.makeRunner(testing.allocator, "primary");
|
|
513
|
+
defer run.deinit();
|
|
513
514
|
|
|
514
|
-
setup_spec = try setupOpts(
|
|
515
|
-
setup_auth = try setupOpts(
|
|
515
|
+
setup_spec = try setupOpts(&run, "makeSpec");
|
|
516
|
+
setup_auth = try setupOpts(&run, "prepareAuth");
|
|
516
517
|
|
|
517
518
|
const S = struct {
|
|
518
|
-
fn ctxOf(a: std.mem.Allocator,
|
|
519
|
-
return corpusCtx(a,
|
|
519
|
+
fn ctxOf(a: std.mem.Allocator, args: []const StdJson) anyerror!*sdk.Context {
|
|
520
|
+
return corpusCtx(a, entryarg(args, 0));
|
|
520
521
|
}
|
|
521
522
|
|
|
522
523
|
/// Record the SDK's own message before letting the error propagate.
|
|
@@ -525,62 +526,35 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
|
|
|
525
526
|
return e;
|
|
526
527
|
}
|
|
527
528
|
|
|
528
|
-
fn
|
|
529
|
-
|
|
530
|
-
if (entry.object.get("args")) |args| {
|
|
531
|
-
if (args == .array and i < args.array.items.len) {
|
|
532
|
-
return try vs.fromStdJson(a, args.array.items[i]);
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
return sdk.Value{ .null = {} };
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
fn argStd(entry: StdJson, i: usize) StdJson {
|
|
540
|
-
if (entry == .object) {
|
|
541
|
-
if (entry.object.get("args")) |args| {
|
|
542
|
-
if (args == .array and i < args.array.items.len) return args.array.items[i];
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
return StdJson{ .null = {} };
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
fn inOf(entry: StdJson) StdJson {
|
|
549
|
-
if (entry == .object) {
|
|
550
|
-
if (entry.object.get("in")) |v| return v;
|
|
551
|
-
}
|
|
552
|
-
return StdJson{ .null = {} };
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
fn done(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
556
|
-
const ctx = try ctxOf(a, e);
|
|
529
|
+
fn done(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
530
|
+
const ctx = try ctxOf(a, args);
|
|
557
531
|
const v = util.done_util(ctx) catch |er| return sdkfail(ctx, em, er);
|
|
558
532
|
po.* = try publishCtx(a, ctx);
|
|
559
533
|
return try vs.toStdJson(a, v);
|
|
560
534
|
}
|
|
561
535
|
|
|
562
|
-
fn makeContext(a: std.mem.Allocator,
|
|
536
|
+
fn makeContext(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
563
537
|
_ = em;
|
|
564
|
-
const ctx = try corpusCtx(a,
|
|
538
|
+
const ctx = try corpusCtx(a, entryarg(args, 0));
|
|
565
539
|
po.* = try publishCtx(a, ctx);
|
|
566
|
-
var out
|
|
567
|
-
var op
|
|
568
|
-
try op.put("entity", StdJson{ .string = ctx.op.entity });
|
|
569
|
-
try op.put("name", StdJson{ .string = ctx.op.name });
|
|
570
|
-
try op.put("input", StdJson{ .string = ctx.op.input });
|
|
571
|
-
try op.put("points", try vs.toStdJson(a, ctx.op.points));
|
|
572
|
-
try out.put("op", StdJson{ .object = op });
|
|
540
|
+
var out: std.json.ObjectMap = .empty;
|
|
541
|
+
var op: std.json.ObjectMap = .empty;
|
|
542
|
+
try op.put(a, "entity", StdJson{ .string = ctx.op.entity });
|
|
543
|
+
try op.put(a, "name", StdJson{ .string = ctx.op.name });
|
|
544
|
+
try op.put(a, "input", StdJson{ .string = ctx.op.input });
|
|
545
|
+
try op.put(a, "points", try vs.toStdJson(a, ctx.op.points));
|
|
546
|
+
try out.put(a, "op", StdJson{ .object = op });
|
|
573
547
|
return StdJson{ .object = out };
|
|
574
548
|
}
|
|
575
549
|
|
|
576
|
-
fn makeError(a: std.mem.Allocator,
|
|
577
|
-
const ctx = try corpusCtx(a,
|
|
550
|
+
fn makeError(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
551
|
+
const ctx = try corpusCtx(a, entryarg(args, 0));
|
|
578
552
|
|
|
579
553
|
// make_error_util takes no error argument — it reads one off the
|
|
580
554
|
// ctx (pending_err, else result.err). The corpus passes it as
|
|
581
555
|
// args[1], so put it where the utility will find it, or every case
|
|
582
556
|
// reports "unknown error".
|
|
583
|
-
const errarg =
|
|
557
|
+
const errarg = entryarg(args, 1);
|
|
584
558
|
if (errarg == .object) {
|
|
585
559
|
if (errarg.object.get("message")) |m| {
|
|
586
560
|
if (m == .string and 0 < m.string.len) {
|
|
@@ -599,11 +573,11 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
|
|
|
599
573
|
return try vs.toStdJson(a, v);
|
|
600
574
|
}
|
|
601
575
|
|
|
602
|
-
fn makeOptions(a: std.mem.Allocator,
|
|
576
|
+
fn makeOptions(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
603
577
|
_ = em;
|
|
604
578
|
// `in` is {config, options}, not a ctx — the utility reads them off
|
|
605
579
|
// the context, so split them out rather than passing the wrapper.
|
|
606
|
-
const inv =
|
|
580
|
+
const inv = entryarg(args, 0);
|
|
607
581
|
const ctx = try corpusCtx(a, StdJson{ .null = {} });
|
|
608
582
|
if (inv == .object) {
|
|
609
583
|
if (inv.object.get("config")) |c| ctx.config = try vs.fromStdJson(a, c);
|
|
@@ -614,149 +588,149 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
|
|
|
614
588
|
return try vs.toStdJson(a, v);
|
|
615
589
|
}
|
|
616
590
|
|
|
617
|
-
fn makeRequest(a: std.mem.Allocator,
|
|
618
|
-
const ctx = try ctxOf(a,
|
|
591
|
+
fn makeRequest(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
592
|
+
const ctx = try ctxOf(a, args);
|
|
619
593
|
_ = util.make_request_util(ctx) catch |er| return sdkfail(ctx, em, er);
|
|
620
594
|
po.* = try publishCtx(a, ctx);
|
|
621
595
|
return StdJson{ .null = {} };
|
|
622
596
|
}
|
|
623
597
|
|
|
624
|
-
fn makeResponse(a: std.mem.Allocator,
|
|
625
|
-
const ctx = try ctxOf(a,
|
|
598
|
+
fn makeResponse(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
599
|
+
const ctx = try ctxOf(a, args);
|
|
626
600
|
_ = util.make_response_util(ctx) catch |er| return sdkfail(ctx, em, er);
|
|
627
601
|
po.* = try publishCtx(a, ctx);
|
|
628
602
|
return StdJson{ .null = {} };
|
|
629
603
|
}
|
|
630
604
|
|
|
631
|
-
fn makeSpec(a: std.mem.Allocator,
|
|
632
|
-
const ctx = try corpusCtxOpts(a,
|
|
605
|
+
fn makeSpec(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
606
|
+
const ctx = try corpusCtxOpts(a, entryarg(args, 0), setup_spec);
|
|
633
607
|
const sp = util.make_spec_util(ctx) catch |er| return sdkfail(ctx, em, er);
|
|
634
608
|
po.* = try publishCtx(a, ctx);
|
|
635
609
|
return try vs.toStdJson(a, sp.to_value());
|
|
636
610
|
}
|
|
637
611
|
|
|
638
|
-
fn url(a: std.mem.Allocator,
|
|
639
|
-
const ctx = try ctxOf(a,
|
|
612
|
+
fn url(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
613
|
+
const ctx = try ctxOf(a, args);
|
|
640
614
|
const u = util.make_url_util(ctx) catch |er| return sdkfail(ctx, em, er);
|
|
641
615
|
po.* = try publishCtx(a, ctx);
|
|
642
616
|
return StdJson{ .string = u };
|
|
643
617
|
}
|
|
644
618
|
|
|
645
|
-
fn operator(a: std.mem.Allocator,
|
|
619
|
+
fn operator(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
646
620
|
_ = po;
|
|
647
621
|
_ = em;
|
|
648
|
-
const op = sdk.Operation.make(try vs.fromStdJson(a,
|
|
649
|
-
var out
|
|
650
|
-
try out.put("entity", StdJson{ .string = op.entity });
|
|
651
|
-
try out.put("input", StdJson{ .string = op.input });
|
|
652
|
-
try out.put("name", StdJson{ .string = op.name });
|
|
653
|
-
try out.put("points", try vs.toStdJson(a, op.points));
|
|
622
|
+
const op = sdk.Operation.make(try vs.fromStdJson(a, entryarg(args, 0)));
|
|
623
|
+
var out: std.json.ObjectMap = .empty;
|
|
624
|
+
try out.put(a, "entity", StdJson{ .string = op.entity });
|
|
625
|
+
try out.put(a, "input", StdJson{ .string = op.input });
|
|
626
|
+
try out.put(a, "name", StdJson{ .string = op.name });
|
|
627
|
+
try out.put(a, "points", try vs.toStdJson(a, op.points));
|
|
654
628
|
return StdJson{ .object = out };
|
|
655
629
|
}
|
|
656
630
|
|
|
657
|
-
fn param(a: std.mem.Allocator,
|
|
631
|
+
fn param(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
658
632
|
_ = em;
|
|
659
|
-
const ctx = try corpusCtx(a,
|
|
660
|
-
const pd = try
|
|
633
|
+
const ctx = try corpusCtx(a, entryarg(args, 0));
|
|
634
|
+
const pd = try vs.fromStdJson(a, entryarg(args, 1));
|
|
661
635
|
const v = util.param_util(ctx, pd);
|
|
662
636
|
po.* = try publishCtx(a, ctx);
|
|
663
637
|
return try vs.toStdJson(a, v);
|
|
664
638
|
}
|
|
665
639
|
|
|
666
|
-
fn auth(a: std.mem.Allocator,
|
|
667
|
-
const ctx = try corpusCtxOpts(a,
|
|
640
|
+
fn auth(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
641
|
+
const ctx = try corpusCtxOpts(a, entryarg(args, 0), setup_auth);
|
|
668
642
|
_ = util.prepare_auth_util(ctx) catch |er| return sdkfail(ctx, em, er);
|
|
669
643
|
po.* = try publishCtx(a, ctx);
|
|
670
644
|
return StdJson{ .null = {} };
|
|
671
645
|
}
|
|
672
646
|
|
|
673
|
-
fn body(a: std.mem.Allocator,
|
|
647
|
+
fn body(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
674
648
|
_ = em;
|
|
675
|
-
const ctx = try ctxOf(a,
|
|
649
|
+
const ctx = try ctxOf(a, args);
|
|
676
650
|
const v = util.prepare_body_util(ctx);
|
|
677
651
|
po.* = try publishCtx(a, ctx);
|
|
678
652
|
return try vs.toStdJson(a, v);
|
|
679
653
|
}
|
|
680
654
|
|
|
681
|
-
fn headers(a: std.mem.Allocator,
|
|
655
|
+
fn headers(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
682
656
|
_ = em;
|
|
683
|
-
const ctx = try ctxOf(a,
|
|
657
|
+
const ctx = try ctxOf(a, args);
|
|
684
658
|
const v = util.prepare_headers_util(ctx);
|
|
685
659
|
po.* = try publishCtx(a, ctx);
|
|
686
660
|
return try vs.toStdJson(a, v);
|
|
687
661
|
}
|
|
688
662
|
|
|
689
|
-
fn method(a: std.mem.Allocator,
|
|
663
|
+
fn method(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
690
664
|
_ = em;
|
|
691
|
-
const ctx = try ctxOf(a,
|
|
665
|
+
const ctx = try ctxOf(a, args);
|
|
692
666
|
const m = util.prepare_method_util(ctx);
|
|
693
667
|
po.* = try publishCtx(a, ctx);
|
|
694
668
|
if (m.len == 0) return StdJson{ .null = {} };
|
|
695
669
|
return StdJson{ .string = m };
|
|
696
670
|
}
|
|
697
671
|
|
|
698
|
-
fn params(a: std.mem.Allocator,
|
|
672
|
+
fn params(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
699
673
|
_ = em;
|
|
700
|
-
const ctx = try ctxOf(a,
|
|
674
|
+
const ctx = try ctxOf(a, args);
|
|
701
675
|
const v = util.prepare_params_util(ctx);
|
|
702
676
|
po.* = try publishCtx(a, ctx);
|
|
703
677
|
return try vs.toStdJson(a, v);
|
|
704
678
|
}
|
|
705
679
|
|
|
706
|
-
fn path(a: std.mem.Allocator,
|
|
680
|
+
fn path(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
707
681
|
_ = em;
|
|
708
|
-
const ctx = try ctxOf(a,
|
|
682
|
+
const ctx = try ctxOf(a, args);
|
|
709
683
|
const v = util.prepare_path_util(ctx);
|
|
710
684
|
po.* = try publishCtx(a, ctx);
|
|
711
685
|
return StdJson{ .string = v };
|
|
712
686
|
}
|
|
713
687
|
|
|
714
|
-
fn query(a: std.mem.Allocator,
|
|
688
|
+
fn query(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
715
689
|
_ = em;
|
|
716
|
-
const ctx = try ctxOf(a,
|
|
690
|
+
const ctx = try ctxOf(a, args);
|
|
717
691
|
const v = util.prepare_query_util(ctx);
|
|
718
692
|
po.* = try publishCtx(a, ctx);
|
|
719
693
|
return try vs.toStdJson(a, v);
|
|
720
694
|
}
|
|
721
695
|
|
|
722
|
-
fn rbasic(a: std.mem.Allocator,
|
|
696
|
+
fn rbasic(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
723
697
|
_ = em;
|
|
724
|
-
const ctx = try ctxOf(a,
|
|
698
|
+
const ctx = try ctxOf(a, args);
|
|
725
699
|
const r = util.result_basic_util(ctx);
|
|
726
700
|
po.* = try publishCtx(a, ctx);
|
|
727
701
|
if (r) |rr| return try vs.toStdJson(a, rr.to_value());
|
|
728
702
|
return StdJson{ .null = {} };
|
|
729
703
|
}
|
|
730
704
|
|
|
731
|
-
fn rbody(a: std.mem.Allocator,
|
|
705
|
+
fn rbody(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
732
706
|
_ = em;
|
|
733
|
-
const ctx = try ctxOf(a,
|
|
707
|
+
const ctx = try ctxOf(a, args);
|
|
734
708
|
const r = util.result_body_util(ctx);
|
|
735
709
|
po.* = try publishCtx(a, ctx);
|
|
736
710
|
if (r) |rr| return try vs.toStdJson(a, rr.to_value());
|
|
737
711
|
return StdJson{ .null = {} };
|
|
738
712
|
}
|
|
739
713
|
|
|
740
|
-
fn rheaders(a: std.mem.Allocator,
|
|
714
|
+
fn rheaders(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
741
715
|
_ = em;
|
|
742
|
-
const ctx = try ctxOf(a,
|
|
716
|
+
const ctx = try ctxOf(a, args);
|
|
743
717
|
const r = util.result_headers_util(ctx);
|
|
744
718
|
po.* = try publishCtx(a, ctx);
|
|
745
719
|
if (r) |rr| return try vs.toStdJson(a, rr.to_value());
|
|
746
720
|
return StdJson{ .null = {} };
|
|
747
721
|
}
|
|
748
722
|
|
|
749
|
-
fn treq(a: std.mem.Allocator,
|
|
723
|
+
fn treq(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
750
724
|
_ = em;
|
|
751
|
-
const ctx = try ctxOf(a,
|
|
725
|
+
const ctx = try ctxOf(a, args);
|
|
752
726
|
const v = util.transform_request_util(ctx);
|
|
753
727
|
po.* = try publishCtx(a, ctx);
|
|
754
728
|
return try vs.toStdJson(a, v);
|
|
755
729
|
}
|
|
756
730
|
|
|
757
|
-
fn tres(a: std.mem.Allocator,
|
|
731
|
+
fn tres(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
|
|
758
732
|
_ = em;
|
|
759
|
-
const ctx = try ctxOf(a,
|
|
733
|
+
const ctx = try ctxOf(a, args);
|
|
760
734
|
const v = util.transform_response_util(ctx);
|
|
761
735
|
po.* = try publishCtx(a, ctx);
|
|
762
736
|
return try vs.toStdJson(a, v);
|
|
@@ -764,28 +738,44 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
|
|
|
764
738
|
};
|
|
765
739
|
|
|
766
740
|
// Every section the corpus carries, looked up in `primary` and driven.
|
|
767
|
-
try
|
|
768
|
-
try
|
|
769
|
-
try
|
|
770
|
-
try
|
|
771
|
-
try
|
|
772
|
-
try
|
|
773
|
-
try
|
|
774
|
-
try
|
|
775
|
-
try
|
|
776
|
-
try
|
|
777
|
-
try
|
|
778
|
-
try
|
|
779
|
-
try
|
|
780
|
-
try
|
|
781
|
-
try
|
|
782
|
-
try
|
|
783
|
-
try
|
|
784
|
-
try
|
|
785
|
-
try
|
|
786
|
-
try
|
|
787
|
-
try
|
|
788
|
-
try
|
|
789
|
-
|
|
790
|
-
|
|
741
|
+
try run.runsetctx(run.group("done", "basic"), .{ .name = "done" }, S.done);
|
|
742
|
+
try run.runsetctx(run.group("makeContext", "basic"), .{ .name = "makeContext" }, S.makeContext);
|
|
743
|
+
try run.runsetctx(run.group("makeError", "basic"), .{ .name = "makeError" }, S.makeError);
|
|
744
|
+
try run.runsetctx(run.group("makeOptions", "basic"), .{ .name = "makeOptions" }, S.makeOptions);
|
|
745
|
+
try run.runsetctx(run.group("makeRequest", "basic"), .{ .name = "makeRequest" }, S.makeRequest);
|
|
746
|
+
try run.runsetctx(run.group("makeResponse", "basic"), .{ .name = "makeResponse" }, S.makeResponse);
|
|
747
|
+
try run.runsetctx(run.group("makeSpec", "basic"), .{ .name = "makeSpec" }, S.makeSpec);
|
|
748
|
+
try run.runsetctx(run.group("makeUrl", "basic"), .{ .name = "makeUrl" }, S.url);
|
|
749
|
+
try run.runsetctx(run.group("operator", "basic"), .{ .name = "operator" }, S.operator);
|
|
750
|
+
try run.runsetctx(run.group("param", "basic"), .{ .name = "param" }, S.param);
|
|
751
|
+
try run.runsetctx(run.group("prepareAuth", "basic"), .{ .name = "prepareAuth" }, S.auth);
|
|
752
|
+
try run.runsetctx(run.group("prepareBody", "basic"), .{ .name = "prepareBody" }, S.body);
|
|
753
|
+
try run.runsetctx(run.group("prepareHeaders", "basic"), .{ .name = "prepareHeaders" }, S.headers);
|
|
754
|
+
try run.runsetctx(run.group("prepareMethod", "basic"), .{ .name = "prepareMethod" }, S.method);
|
|
755
|
+
try run.runsetctx(run.group("prepareParams", "basic"), .{ .name = "prepareParams" }, S.params);
|
|
756
|
+
try run.runsetctx(run.group("preparePath", "basic"), .{ .name = "preparePath" }, S.path);
|
|
757
|
+
try run.runsetctx(run.group("prepareQuery", "basic"), .{ .name = "prepareQuery" }, S.query);
|
|
758
|
+
try run.runsetctx(run.group("resultBasic", "basic"), .{ .name = "resultBasic" }, S.rbasic);
|
|
759
|
+
try run.runsetctx(run.group("resultBody", "basic"), .{ .name = "resultBody" }, S.rbody);
|
|
760
|
+
try run.runsetctx(run.group("resultHeaders", "basic"), .{ .name = "resultHeaders" }, S.rheaders);
|
|
761
|
+
try run.runsetctx(run.group("transformRequest", "basic"), .{ .name = "transformRequest" }, S.treq);
|
|
762
|
+
try run.runsetctx(run.group("transformResponse", "basic"), .{ .name = "transformResponse" }, S.tres);
|
|
763
|
+
|
|
764
|
+
// The count is the guard: every section above compared its SUBJECT
|
|
765
|
+
// INVOCATIONS against the entries its group declares (omniresolver
|
|
766
|
+
// decision 6), and the census holds the whole file to a floor. A
|
|
767
|
+
// primary section that stopped driving the SDK, or a driver list that
|
|
768
|
+
// lost a line, shows up here as a number rather than as silence.
|
|
769
|
+
std.debug.print(
|
|
770
|
+
"\n primary corpus: {d} cases across {d} sections\n",
|
|
771
|
+
.{ omnirun.CASES, omnirun.GROUPS },
|
|
772
|
+
);
|
|
773
|
+
|
|
774
|
+
if (omnirun.CASES < CASES_FLOOR or omnirun.GROUPS < SECTIONS_FLOOR) {
|
|
775
|
+
std.debug.print(
|
|
776
|
+
" EXPECTED at least {d} cases across {d} sections\n",
|
|
777
|
+
.{ CASES_FLOOR, SECTIONS_FLOOR },
|
|
778
|
+
);
|
|
779
|
+
return error.CorpusUnderRun;
|
|
780
|
+
}
|
|
791
781
|
}
|