go: downloading github.com/google/go-cmp v0.4.0 go: downloading github.com/stretchr/testify v1.2.2 go: downloading github.com/kr/pretty v0.1.0 go: downloading github.com/kylelemons/godebug v1.1.0 go: downloading github.com/rogpeppe/go-internal v1.8.0 go: downloading github.com/kr/text v0.1.0 go: downloading github.com/davecgh/go-spew v1.1.1 go: downloading github.com/pmezard/go-difflib v1.0.0 go: downloading github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e go: downloading gopkg.in/errgo.v2 v2.1.0 ? cuelang.org/go/cmd/cue [no test files] === RUN TestHelp Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. --- PASS: TestHelp (6.01s) === RUN TestLatest === RUN TestLatest/testdata/script/cmd_after.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_after.txt/after_tool.cue === RUN TestLatest/testdata/script/cmd_after.txt/task.cue === RUN TestLatest/testdata/script/cmd_after.txt/cue.mod === RUN TestLatest/testdata/script/cmd_closed.txt/task.cue === RUN TestLatest/testdata/script/cmd_closed.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_dep.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_dep.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_dep.txt/cue.mod === RUN TestLatest/testdata/script/cmd_deppkg.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/cmd_deppkg.txt/sub/sub.cue === RUN TestLatest/testdata/script/cmd_deppkg.txt/x_tool.cue === RUN TestLatest/testdata/script/cmd_deppkg.txt/cue_eval.golden === RUN TestLatest/testdata/script/cmd_deppkg.txt/cue_cmd_foo_both.golden === RUN TestLatest/testdata/script/cmd_echo.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/cmd_echo.txt/data.cue === RUN TestLatest/testdata/script/cmd_echo.txt/hello.cue === RUN TestLatest/testdata/script/cmd_echo.txt/hello_tool.cue === RUN TestLatest/testdata/script/cmd_embed.txt/expect/concrete.json === RUN TestLatest/testdata/script/cmd_embed.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/cmd_embed.txt/cue.mod/pkg/example.com/hello/cue.mod/module.cue === RUN TestLatest/testdata/script/cmd_embed.txt/cue.mod/pkg/example.com/hello/hello.cue === RUN TestLatest/testdata/script/cmd_embed.txt/m.cue === RUN TestLatest/testdata/script/cmd_embed.txt/x_tool.cue === RUN TestLatest/testdata/script/cmd_env.txt/cmd_env.out === RUN TestLatest/testdata/script/cmd_env.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_func.txt/k1.cue === RUN TestLatest/testdata/script/cmd_func.txt/k_tool.cue === RUN TestLatest/testdata/script/cmd_func.txt/stdout-expect === RUN TestLatest/testdata/script/cmd_github.txt/cue.mod/module === RUN TestLatest/testdata/script/cmd_github.txt/.github/workflows/mirror.yml.golden === RUN TestLatest/testdata/script/cmd_github.txt/.github/workflows/new_version_triggers.yml.golden === RUN TestLatest/testdata/script/cmd_github.txt/.github/workflows/release.yml.golden === RUN TestLatest/testdata/script/cmd_github.txt/.github/workflows/repository_dispatch.yml.golden === RUN TestLatest/testdata/script/cmd_github.txt/.github/workflows/test.yml.golden === RUN TestLatest/testdata/script/cmd_github.txt/.github/workflows/tip_triggers.yml.golden === RUN TestLatest/testdata/script/cmd_github.txt/internal/ci/ci_tool.cue === RUN TestLatest/testdata/script/cmd_github.txt/cue.mod/pkg/github.com/SchemaStore/schemastore/src/schemas/json/github-workflow.cue === RUN TestLatest/testdata/script/cmd_github.txt/internal/ci/workflows.cue === RUN TestLatest/testdata/script/cmd_http.txt/cmd_http.out === RUN TestLatest/testdata/script/cmd_http.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_http.txt/task.cue === RUN TestLatest/testdata/script/cmd_inferred.txt/f1.cue === RUN TestLatest/testdata/script/cmd_inferred.txt/dump_tool.cue === RUN TestLatest/testdata/script/cmd_inferred.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_issue650.txt/blah/blah.cue === RUN TestLatest/testdata/script/cmd_issue650.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/cmd_issue650.txt/x_tool.cue === RUN TestLatest/testdata/script/cmd_issue650.txt/y_tool.cue === RUN TestLatest/testdata/script/cmd_jsonpb.txt/schema.cue === RUN TestLatest/testdata/script/cmd_jsonpb.txt/nested.cue === RUN TestLatest/testdata/script/cmd_jsonpb.txt/schemaflag.cue === RUN TestLatest/testdata/script/cmd_jsonpb.txt/data.json === RUN TestLatest/testdata/script/cmd_jsonpb.txt/data-err.json === RUN TestLatest/testdata/script/cmd_jsonpb.txt/stream.yaml === RUN TestLatest/testdata/script/cmd_jsonpb.txt/out/data1 === RUN TestLatest/testdata/script/cmd_jsonpb.txt/out/stream === RUN TestLatest/testdata/script/cmd_jsonpb.txt/out/data-err === RUN TestLatest/testdata/script/cmd_print.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_print.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_print.txt/task.cue === RUN TestLatest/testdata/script/cmd_print.txt/cue.mod === RUN TestLatest/testdata/script/cmd_ref.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_ref.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_ref.txt/task.cue === RUN TestLatest/testdata/script/cmd_ref.txt/cue.mod === RUN TestLatest/testdata/script/cmd_run.txt/task.cue === RUN TestLatest/testdata/script/cmd_run.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_run.txt/base_tool.cue === RUN TestLatest/testdata/script/cmd_run_list.txt/task.cue === RUN TestLatest/testdata/script/cmd_run_list.txt/task_tool.cue === RUN TestLatest/testdata/script/cmd_run_list.txt/base_tool.cue === RUN TestLatest/testdata/script/cmd_stdin.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_stdin.txt/stdin.txt === RUN TestLatest/testdata/script/cmd_stdin.txt/hello_tool.cue === RUN TestLatest/testdata/script/cmd_stdin.txt/cue.mod === RUN TestLatest/testdata/script/cmd_tags.txt/expect-stdout === RUN TestLatest/testdata/script/cmd_tags.txt/tags.cue === RUN TestLatest/testdata/script/cmd_tags.txt/tags_tool.cue === RUN TestLatest/testdata/script/cmd_textproto.txt/topschema.cue === RUN TestLatest/testdata/script/cmd_textproto.txt/schema.cue === RUN TestLatest/testdata/script/cmd_textproto.txt/foo.textproto === RUN TestLatest/testdata/script/cmd_textproto.txt/out/topfoo.textproto === RUN TestLatest/testdata/script/cmd_textproto.txt/out/foo.textproto === RUN TestLatest/testdata/script/cmd_textproto.txt/out/stderr3 === RUN TestLatest/testdata/script/def_basic.txt/schema.cue === RUN TestLatest/testdata/script/def_basic.txt/data.cue === RUN TestLatest/testdata/script/def_basic.txt/expect-stdout2 === RUN TestLatest/testdata/script/def_basic.txt/expect-stdout1 === RUN TestLatest/testdata/script/def_force.txt/file.cue === RUN TestLatest/testdata/script/def_jsonschema.txt/expect-stdout === RUN TestLatest/testdata/script/def_jsonschema.txt/schema.json === RUN TestLatest/testdata/script/def_jsonschema.txt/bad.json === RUN TestLatest/testdata/script/def_jsonschema.txt/expect-stderr === RUN TestLatest/testdata/script/def_jsonschema.txt/data.yaml === RUN TestLatest/testdata/script/def_jsonschema.txt/expect-stderr2 === RUN TestLatest/testdata/script/def_jsonschema.txt/expect-stderr3 === RUN TestLatest/testdata/script/def_jsonschema.txt/cue.mod === RUN TestLatest/testdata/script/def_openapi.txt/foo.cue === RUN TestLatest/testdata/script/def_openapi.txt/openapi.json === RUN TestLatest/testdata/script/def_openapi.txt/openapi2.json === RUN TestLatest/testdata/script/def_openapi.txt/expect-json-out === RUN TestLatest/testdata/script/def_openapi.txt/expect-yaml-out === RUN TestLatest/testdata/script/def_openapi.txt/expect-cue-out === RUN TestLatest/testdata/script/def_openapi.txt/expect-cue === RUN TestLatest/testdata/script/def_openapi.txt/expect-cue2 === RUN TestLatest/testdata/script/def_openapi.txt/expect-cue2#01 === RUN TestLatest/testdata/script/def_openapi.txt/expect-cue3 === RUN TestLatest/testdata/script/def_openapi.txt/expect-out.cue === RUN TestLatest/testdata/script/def_proto.txt/expect-stdout === RUN TestLatest/testdata/script/def_proto.txt/policy.proto === RUN TestLatest/testdata/script/def_proto.txt/include/google/protobuf/timestamp.proto === RUN TestLatest/testdata/script/def_proto.txt/cue.mod === RUN TestLatest/testdata/script/eval_concrete.txt/eval_conc.cue === RUN TestLatest/testdata/script/eval_concrete.txt/eval_conc.yaml === RUN TestLatest/testdata/script/eval_concrete.txt/cmd_echo.out === RUN TestLatest/testdata/script/eval_concrete.txt/data.cue === RUN TestLatest/testdata/script/eval_concrete.txt/hello.cue === RUN TestLatest/testdata/script/eval_context.txt/expect-stdout === RUN TestLatest/testdata/script/eval_context.txt/services.jsonl === RUN TestLatest/testdata/script/eval_context.txt/cue.mod === RUN TestLatest/testdata/script/eval_e_hidden.txt/dep.cue === RUN TestLatest/testdata/script/eval_e_hidden.txt/tst.cue === RUN TestLatest/testdata/script/eval_flags.txt/test.json === RUN TestLatest/testdata/script/eval_flags.txt/vector.cue === RUN TestLatest/testdata/script/eval_flags.txt/expect-stderr1 === RUN TestLatest/testdata/script/eval_flags.txt/expect-stderr2 === RUN TestLatest/testdata/script/eval_flags.txt/expect-stderr3 === RUN TestLatest/testdata/script/eval_flags.txt/expect-stderr4 === RUN TestLatest/testdata/script/eval_flags.txt/expect-stderr5 === RUN TestLatest/testdata/script/eval_force.txt/file.cue === RUN TestLatest/testdata/script/eval_force.txt/eval.golden === RUN TestLatest/testdata/script/eval_hidden.txt/expect-stdout === RUN TestLatest/testdata/script/eval_hidden.txt/.foo.cue === RUN TestLatest/testdata/script/eval_import.txt/expect-stdout === RUN TestLatest/testdata/script/eval_import.txt/in.cue === RUN TestLatest/testdata/script/eval_newline.txt/data.cue === RUN TestLatest/testdata/script/eval_newline.txt/expect-stdout === RUN TestLatest/testdata/script/eval_newline.txt/expect-out.cue === RUN TestLatest/testdata/script/eval_rec.txt/rec.cue === RUN TestLatest/testdata/script/eval_rec.txt/expect-stdout === RUN TestLatest/testdata/script/eval_resolve.txt/data.yaml === RUN TestLatest/testdata/script/eval_resolve.txt/none.cue === RUN TestLatest/testdata/script/eval_resolve.txt/anon.cue === RUN TestLatest/testdata/script/eval_resolve.txt/package.cue === RUN TestLatest/testdata/script/eval_resolve.txt/check.cue === RUN TestLatest/testdata/script/eval_resolve.txt/out-stderr === RUN TestLatest/testdata/script/eval_stdin.txt/stdin.cue === RUN TestLatest/testdata/script/eval_stdin.txt/t.cue === RUN TestLatest/testdata/script/eval_stdin.txt/expect-stdout === RUN TestLatest/testdata/script/eval_tags.txt/expect-stdout === RUN TestLatest/testdata/script/eval_tags.txt/tags.cue === RUN TestLatest/testdata/script/eval_tool.txt/expect-stdout === RUN TestLatest/testdata/script/eval_tool.txt/task.cue === RUN TestLatest/testdata/script/eval_tool.txt/task_tool.cue === RUN TestLatest/testdata/script/export.txt/expect-stdout === RUN TestLatest/testdata/script/export.txt/hello/data.cue === RUN TestLatest/testdata/script/export.txt/hello/hello.cue === RUN TestLatest/testdata/script/export.txt/hello/cue.mod === RUN TestLatest/testdata/script/export_expr.txt/expect-stdout === RUN TestLatest/testdata/script/export_expr.txt/data.cue === RUN TestLatest/testdata/script/export_force.txt/file.cue === RUN TestLatest/testdata/script/export_force.txt/test.yml.golden === RUN TestLatest/testdata/script/export_list.txt/expect-stdout === RUN TestLatest/testdata/script/export_list.txt/import/services.jsonl === RUN TestLatest/testdata/script/export_list.txt/cue.mod === RUN TestLatest/testdata/script/export_select.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/export_select.txt/foo.cue === RUN TestLatest/testdata/script/export_select.txt/bar.cue === RUN TestLatest/testdata/script/export_select.txt/expect-stdout === RUN TestLatest/testdata/script/export_select.txt/cue.mod/gen/example.org/bar/bar.cue === RUN TestLatest/testdata/script/export_yaml.txt/expect-stdout === RUN TestLatest/testdata/script/export_yaml.txt/hello/data.cue === RUN TestLatest/testdata/script/export_yaml.txt/hello/hello.cue === RUN TestLatest/testdata/script/export_yaml.txt/hello/cue.mod === RUN TestLatest/testdata/script/file_forms.txt/foo.cue === RUN TestLatest/testdata/script/file_forms.txt/bar.cue === RUN TestLatest/testdata/script/file_forms.txt/expect-data-foo === RUN TestLatest/testdata/script/file_forms.txt/expect-data-bar === RUN TestLatest/testdata/script/file_forms.txt/expect-graph-bar === RUN TestLatest/testdata/script/fmt_err.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/fmt_err.txt/x.cue === RUN TestLatest/testdata/script/fmt_err.txt/out/x_cue === RUN TestLatest/testdata/script/fmt_multi.txt/x.cue === RUN TestLatest/testdata/script/fmt_multi.txt/star.cue === RUN TestLatest/testdata/script/fmt_multi.txt/y.cue === RUN TestLatest/testdata/script/fmt_multi.txt/yb.cue === RUN TestLatest/testdata/script/fmt_multi.txt/out/x.cue === RUN TestLatest/testdata/script/fmt_multi.txt/out/star-cue === RUN TestLatest/testdata/script/fmt_multi.txt/out/y-cue === RUN TestLatest/testdata/script/fmt_multi.txt/out/yb-cue === RUN TestLatest/testdata/script/fmt_stdin.txt/feed === RUN TestLatest/testdata/script/fmt_stdin.txt/expect-stdout === RUN TestLatest/testdata/script/fmt_stdin.txt/fmt/cue.mod === RUN TestLatest/testdata/script/get_go_bad_embed.txt/go.mod === RUN TestLatest/testdata/script/get_go_bad_embed.txt/go.mod.golden === RUN TestLatest/testdata/script/get_go_bad_embed.txt/blah.go === RUN TestLatest/testdata/script/get_go_bad_embed.txt/blah.cue.golden === RUN TestLatest/testdata/script/get_go_local.txt/go.mod === RUN TestLatest/testdata/script/get_go_local.txt/go.mod.golden === RUN TestLatest/testdata/script/get_go_local.txt/blah.go === RUN TestLatest/testdata/script/get_go_local.txt/all.cue.golden === RUN TestLatest/testdata/script/get_go_local.txt/other.cue.golden === RUN TestLatest/testdata/script/get_go_non_local.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/get_go_non_local.txt/go.mod === RUN TestLatest/testdata/script/get_go_non_local.txt/go.mod.golden === RUN TestLatest/testdata/script/get_go_non_local.txt/cuedeps.go === RUN TestLatest/testdata/script/get_go_non_local.txt/cue.mod/gen/example.com/blah/blah_go_gen.cue.golden === RUN TestLatest/testdata/script/get_go_non_local.txt/cue.mod/gen/example.com/blah/blah_gen.cue.golden === RUN TestLatest/testdata/script/get_go_type_errors.txt/go.mod === RUN TestLatest/testdata/script/get_go_type_errors.txt/go.mod.golden === RUN TestLatest/testdata/script/get_go_type_errors.txt/blah.go === RUN TestLatest/testdata/script/get_go_type_errors.txt/blah.cue.golden === RUN TestLatest/testdata/script/get_go_types.txt/go.mod === RUN TestLatest/testdata/script/get_go_types.txt/go.mod.golden === RUN TestLatest/testdata/script/get_go_types.txt/cue.mod === RUN TestLatest/testdata/script/get_go_types.txt/pkg1/alias.go === RUN TestLatest/testdata/script/get_go_types.txt/pkg1/file1.go === RUN TestLatest/testdata/script/get_go_types.txt/pkg2/add.cue === RUN TestLatest/testdata/script/get_go_types.txt/pkg2/pkg2.go === RUN TestLatest/testdata/script/get_go_types.txt/pkg3/pkg3.go === RUN TestLatest/testdata/script/get_go_types.txt/pkg1/alias_go_gen.cue === RUN TestLatest/testdata/script/get_go_types.txt/pkg1/file1_go_gen.cue === RUN TestLatest/testdata/script/get_go_types.txt/pkg2/pkg2_go_gen.cue === RUN TestLatest/testdata/script/get_go_types.txt/pkg3/pkg3_go_gen.cue === RUN TestLatest/testdata/script/get_go_types.txt/pkg1/alias_go_gen.cue.golden === RUN TestLatest/testdata/script/get_go_types.txt/pkg1/file1_go_gen.cue.golden === RUN TestLatest/testdata/script/get_go_types.txt/pkg2/add_gen.cue.golden === RUN TestLatest/testdata/script/get_go_types.txt/pkg2/pkg2_go_gen.cue.golden === RUN TestLatest/testdata/script/get_go_types.txt/pkg3/pkg3_go_gen.cue.golden === RUN TestLatest/testdata/script/get_go_unresolvable_package.txt/go.mod === RUN TestLatest/testdata/script/goproxytest.txt/go.mod === RUN TestLatest/testdata/script/goproxytest.txt/main.go === RUN TestLatest/testdata/script/goproxytest.txt/go.mod.golden === RUN TestLatest/testdata/script/help.txt/stdout.golden === RUN TestLatest/testdata/script/help_cmd.txt/cue.mod === RUN TestLatest/testdata/script/help_cmd.txt/task_tool.cue === RUN TestLatest/testdata/script/help_cmd.txt/expect-stdout === RUN TestLatest/testdata/script/help_cmd_flags.txt/cue.mod === RUN TestLatest/testdata/script/help_cmd_flags.txt/task_tool.cue === RUN TestLatest/testdata/script/help_cmd_flags.txt/expect-stdout === RUN TestLatest/testdata/script/help_doc.txt/foo.cue === RUN TestLatest/testdata/script/help_doc.txt/bar.cue === RUN TestLatest/testdata/script/help_doc.txt/foo.yaml === RUN TestLatest/testdata/script/help_doc.txt/stdout-export === RUN TestLatest/testdata/script/help_doc.txt/stdout-foo === RUN TestLatest/testdata/script/help_doc.txt/stdout-name === RUN TestLatest/testdata/script/help_doc.txt/expect-stdout === RUN TestLatest/testdata/script/help_hello.txt/cue.mod === RUN TestLatest/testdata/script/help_hello.txt/task_tool.cue === RUN TestLatest/testdata/script/help_hello.txt/expect-stdout === RUN TestLatest/testdata/script/hidden.txt/pkg.cue === RUN TestLatest/testdata/script/hidden.txt/file.cue === RUN TestLatest/testdata/script/hidden.txt/expect-stdout === RUN TestLatest/testdata/script/import_auto.txt/expect-openapi === RUN TestLatest/testdata/script/import_auto.txt/openapi.yaml === RUN TestLatest/testdata/script/import_binary.txt/x.crt === RUN TestLatest/testdata/script/import_binary.txt/y.crt2 === RUN TestLatest/testdata/script/import_binary.txt/bin.cue === RUN TestLatest/testdata/script/import_binary.txt/str.cue === RUN TestLatest/testdata/script/import_binary.txt/out/bin === RUN TestLatest/testdata/script/import_binary.txt/out/str === RUN TestLatest/testdata/script/import_binary.txt/out/expect.cue === RUN TestLatest/testdata/script/import_context.txt/expect-stdout === RUN TestLatest/testdata/script/import_context.txt/import/services.jsonl === RUN TestLatest/testdata/script/import_context.txt/cue.mod === RUN TestLatest/testdata/script/import_dir.txt/x.yml === RUN TestLatest/testdata/script/import_dir.txt/expect.cue === RUN TestLatest/testdata/script/import_files.txt/expect-stdout === RUN TestLatest/testdata/script/import_files.txt/import/services.jsonl === RUN TestLatest/testdata/script/import_files.txt/cue.mod === RUN TestLatest/testdata/script/import_hoiststr.txt/expect-stdout === RUN TestLatest/testdata/script/import_hoiststr.txt/import/services.cue === RUN TestLatest/testdata/script/import_hoiststr.txt/import/services.jsonl === RUN TestLatest/testdata/script/import_hoiststr.txt/cue.mod === RUN TestLatest/testdata/script/import_list.txt/expect-stdout1 === RUN TestLatest/testdata/script/import_list.txt/expect-stdout2 === RUN TestLatest/testdata/script/import_list.txt/expect3 === RUN TestLatest/testdata/script/import_list.txt/import1/services.jsonl === RUN TestLatest/testdata/script/import_list.txt/import2/data.jsonl === RUN TestLatest/testdata/script/import_list.txt/import3/data.json === RUN TestLatest/testdata/script/import_list.txt/cue.mod === RUN TestLatest/testdata/script/import_match.txt/uni.yml === RUN TestLatest/testdata/script/import_match.txt/service.yaml === RUN TestLatest/testdata/script/import_match.txt/out/expect-uni.cue === RUN TestLatest/testdata/script/import_path.txt/expect-stdout === RUN TestLatest/testdata/script/import_path.txt/import/services.jsonl === RUN TestLatest/testdata/script/import_path.txt/cue.mod === RUN TestLatest/testdata/script/import_proto.txt/expect-stdout === RUN TestLatest/testdata/script/import_proto.txt/expect-stderr === RUN TestLatest/testdata/script/import_proto.txt/root/cue.mod/module.cue === RUN TestLatest/testdata/script/import_proto.txt/root/cue.mod/module.cue#01 === RUN TestLatest/testdata/script/import_proto.txt/root/cue.mod/gen/googleapis.com/acme/test/test/test_proto_gen.cue === RUN TestLatest/testdata/script/import_proto.txt/root/mixer/v1/attributes.proto === RUN TestLatest/testdata/script/import_proto.txt/root/mixer/v1/config/client/client_config.proto === RUN TestLatest/testdata/script/import_proto.txt/include/acme/test.proto === RUN TestLatest/testdata/script/import_proto.txt/include/acme/test/test.proto === RUN TestLatest/testdata/script/import_proto.txt/include/google/protobuf/timestamp.proto === RUN TestLatest/testdata/script/import_proto.txt/expect-attributes_proto_gen.cue === RUN TestLatest/testdata/script/import_proto.txt/expect-client_config_proto_gen.cue === RUN TestLatest/testdata/script/import_proto.txt/expect-test_proto_gen.cue === RUN TestLatest/testdata/script/import_proto2.txt/expect-stdout === RUN TestLatest/testdata/script/import_proto2.txt/expect-stderr === RUN TestLatest/testdata/script/import_proto2.txt/root/cue.mod/module.cue === RUN TestLatest/testdata/script/import_proto2.txt/root/cue.mod/module.cue#01 === RUN TestLatest/testdata/script/import_proto2.txt/root/cue.mod/gen/googleapis.com/acme/test/test/test_proto_gen.cue === RUN TestLatest/testdata/script/import_proto2.txt/root/mixer/v1/attributes.proto === RUN TestLatest/testdata/script/import_proto2.txt/root/mixer/v1/config/client/client_config.proto === RUN TestLatest/testdata/script/import_proto2.txt/include/acme/test.proto === RUN TestLatest/testdata/script/import_proto2.txt/include/acme/test/test.proto === RUN TestLatest/testdata/script/import_proto2.txt/include/google/protobuf/timestamp.proto === RUN TestLatest/testdata/script/import_proto2.txt/expect-attributes_proto_gen.cue === RUN TestLatest/testdata/script/import_proto2.txt/expect-client_config_proto_gen.cue === RUN TestLatest/testdata/script/import_proto2.txt/expect-test_proto_gen.cue === RUN TestLatest/testdata/script/inject.txt/test.cue === RUN TestLatest/testdata/script/inject.txt/expect-stdout === RUN TestLatest/testdata/script/inject.txt/vars.cue === RUN TestLatest/testdata/script/inject.txt/err.cue === RUN TestLatest/testdata/script/inject.txt/vars_tool.cue === RUN TestLatest/testdata/script/inject.txt/expect-stdout-vars === RUN TestLatest/testdata/script/inject.txt/expect-stderr-err === RUN TestLatest/testdata/script/inject.txt/expect-stdout-override === RUN TestLatest/testdata/script/inject.txt/expect-stdout-novars === RUN TestLatest/testdata/script/inject.txt/expect-stdout-tool === RUN TestLatest/testdata/script/issue116.txt/in === RUN TestLatest/testdata/script/issue116.txt/stdout-cue1 === RUN TestLatest/testdata/script/issue116.txt/stdout-cue2 === RUN TestLatest/testdata/script/issue116.txt/stdout-cue3 === RUN TestLatest/testdata/script/issue116.txt/stdout-json === RUN TestLatest/testdata/script/issue116.txt/dummy === RUN TestLatest/testdata/script/issue217.txt/schema.cue === RUN TestLatest/testdata/script/issue217.txt/def-stdout === RUN TestLatest/testdata/script/issue217.txt/eval-stdout === RUN TestLatest/testdata/script/issue236.txt/in.cue === RUN TestLatest/testdata/script/issue269.txt/struct.cue === RUN TestLatest/testdata/script/issue269.txt/expect-stderr === RUN TestLatest/testdata/script/issue269.txt/expect-stdout === RUN TestLatest/testdata/script/issue289.txt/test.yaml === RUN TestLatest/testdata/script/issue289.txt/expect-stderr === RUN TestLatest/testdata/script/issue302.txt/foo.cue === RUN TestLatest/testdata/script/issue302.txt/rewritten === RUN TestLatest/testdata/script/issue303.txt/foo.cue === RUN TestLatest/testdata/script/issue303.txt/rewritten === RUN TestLatest/testdata/script/issue304.txt/expect-stdout === RUN TestLatest/testdata/script/issue304.txt/x.cue === RUN TestLatest/testdata/script/issue398.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/issue398.txt/pkg/foo.cue === RUN TestLatest/testdata/script/issue398.txt/pkg/bar.cue === RUN TestLatest/testdata/script/issue398.txt/pkg/baz.cue === RUN TestLatest/testdata/script/issue398.txt/expect-stdout === RUN TestLatest/testdata/script/issue425.txt/list.cue === RUN TestLatest/testdata/script/issue425.txt/list.json === RUN TestLatest/testdata/script/issue425.txt/expect-stdout === RUN TestLatest/testdata/script/issue461.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/issue461.txt/expect-hello === RUN TestLatest/testdata/script/issue461.txt/x_tool.cue === RUN TestLatest/testdata/script/issue473.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/issue473.txt/x.cue === RUN TestLatest/testdata/script/issue476.txt/x_tool.cue === RUN TestLatest/testdata/script/issue476.txt/y.cue === RUN TestLatest/testdata/script/issue476.txt/expect-stdout === RUN TestLatest/testdata/script/issue512.txt/bools.cue === RUN TestLatest/testdata/script/issue520.txt/cue.mod/module.cue === RUN TestLatest/testdata/script/issue520.txt/my.cue === RUN TestLatest/testdata/script/issue520.txt/my_tool.cue === RUN TestLatest/testdata/script/issue525.txt/x.cue === RUN TestLatest/testdata/script/issue525.txt/x_tool.cue === RUN TestLatest/testdata/script/issue526.txt/x.cue === RUN TestLatest/testdata/script/issue526.txt/x_tool.cue === RUN TestLatest/testdata/script/issue749.txt/float.cue === RUN TestLatest/testdata/script/issue749.txt/expect-stderr === RUN TestLatest/testdata/script/issue749.txt/expect-stdout === RUN TestLatest/testdata/script/issue986.txt/in.cue === RUN TestLatest/testdata/script/issue986.txt/expect-stdout === RUN TestLatest/testdata/script/load_pkg.txt/data.cue === RUN TestLatest/testdata/script/load_pkg.txt/t.cue === RUN TestLatest/testdata/script/load_pkg.txt/kube.cue === RUN TestLatest/testdata/script/load_pkg.txt/foo/kube2.cue === RUN TestLatest/testdata/script/load_pkg.txt/stdout-t === RUN TestLatest/testdata/script/load_pkg.txt/stdout-files === RUN TestLatest/testdata/script/load_pkg.txt/stdout-pkg === RUN TestLatest/testdata/script/merge_interaction.txt/combine.cue === RUN TestLatest/testdata/script/merge_interaction.txt/combine_tool.cue === RUN TestLatest/testdata/script/merge_interaction.txt/cue.mod === RUN TestLatest/testdata/script/merge_interaction.txt/expect-stdout === RUN TestLatest/testdata/script/no_read_stdin.txt/- === RUN TestLatest/testdata/script/no_read_stdin.txt/expect-stderr === RUN TestLatest/testdata/script/toolonly.txt/expect-stdout === RUN TestLatest/testdata/script/toolonly.txt/foo_tool.cue === RUN TestLatest/testdata/script/trim.txt/expect-stdout === RUN TestLatest/testdata/script/trim.txt/trim/trim.cue === RUN TestLatest/testdata/script/trim.txt/cue.mod === RUN TestLatest/testdata/script/trim_force.txt/file.cue === RUN TestLatest/testdata/script/vet_altdata.txt/schema.cue === RUN TestLatest/testdata/script/vet_altdata.txt/foo.data === RUN TestLatest/testdata/script/vet_altdata.txt/export-stdout === RUN TestLatest/testdata/script/vet_embed.txt/schema.cue === RUN TestLatest/testdata/script/vet_embed.txt/foo.yaml === RUN TestLatest/testdata/script/vet_embed.txt/stream.yaml === RUN TestLatest/testdata/script/vet_embed.txt/expect-foo === RUN TestLatest/testdata/script/vet_embed.txt/expect-stream === RUN TestLatest/testdata/script/vet_embed.txt/expect-stream#01 === RUN TestLatest/testdata/script/vet_opt.txt/expect-stdout === RUN TestLatest/testdata/script/vet_opt.txt/vet.cue --- PASS: TestLatest (0.20s) --- PASS: TestLatest/testdata/script/cmd_after.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_after.txt/after_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_after.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_after.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/cmd_closed.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_closed.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_dep.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_dep.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_dep.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/cmd_deppkg.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_deppkg.txt/sub/sub.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_deppkg.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_deppkg.txt/cue_eval.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_deppkg.txt/cue_cmd_foo_both.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_echo.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_echo.txt/data.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_echo.txt/hello.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_echo.txt/hello_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_embed.txt/expect/concrete.json (0.00s) --- PASS: TestLatest/testdata/script/cmd_embed.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_embed.txt/cue.mod/pkg/example.com/hello/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_embed.txt/cue.mod/pkg/example.com/hello/hello.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_embed.txt/m.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_embed.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_env.txt/cmd_env.out (0.00s) --- PASS: TestLatest/testdata/script/cmd_env.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_func.txt/k1.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_func.txt/k_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_func.txt/stdout-expect (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/cue.mod/module (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/.github/workflows/mirror.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/.github/workflows/new_version_triggers.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/.github/workflows/release.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/.github/workflows/repository_dispatch.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/.github/workflows/test.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/.github/workflows/tip_triggers.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/internal/ci/ci_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_github.txt/cue.mod/pkg/github.com/SchemaStore/schemastore/src/schemas/json/github-workflow.cue (0.01s) --- PASS: TestLatest/testdata/script/cmd_github.txt/internal/ci/workflows.cue (0.01s) --- PASS: TestLatest/testdata/script/cmd_http.txt/cmd_http.out (0.00s) --- PASS: TestLatest/testdata/script/cmd_http.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_http.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_inferred.txt/f1.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_inferred.txt/dump_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_inferred.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_issue650.txt/blah/blah.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_issue650.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_issue650.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_issue650.txt/y_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/schema.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/nested.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/schemaflag.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/data.json (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/data-err.json (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/stream.yaml (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/out/data1 (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/out/stream (0.00s) --- PASS: TestLatest/testdata/script/cmd_jsonpb.txt/out/data-err (0.00s) --- PASS: TestLatest/testdata/script/cmd_print.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_print.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_print.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_print.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/cmd_ref.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_ref.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_ref.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_ref.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/cmd_run.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_run.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_run.txt/base_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_run_list.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_run_list.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_run_list.txt/base_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_stdin.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_stdin.txt/stdin.txt (0.00s) --- PASS: TestLatest/testdata/script/cmd_stdin.txt/hello_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_stdin.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/cmd_tags.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/cmd_tags.txt/tags.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_tags.txt/tags_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_textproto.txt/topschema.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_textproto.txt/schema.cue (0.00s) --- PASS: TestLatest/testdata/script/cmd_textproto.txt/foo.textproto (0.00s) --- PASS: TestLatest/testdata/script/cmd_textproto.txt/out/topfoo.textproto (0.00s) --- PASS: TestLatest/testdata/script/cmd_textproto.txt/out/foo.textproto (0.00s) --- PASS: TestLatest/testdata/script/cmd_textproto.txt/out/stderr3 (0.00s) --- PASS: TestLatest/testdata/script/def_basic.txt/schema.cue (0.00s) --- PASS: TestLatest/testdata/script/def_basic.txt/data.cue (0.00s) --- PASS: TestLatest/testdata/script/def_basic.txt/expect-stdout2 (0.00s) --- PASS: TestLatest/testdata/script/def_basic.txt/expect-stdout1 (0.00s) --- PASS: TestLatest/testdata/script/def_force.txt/file.cue (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/schema.json (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/bad.json (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/data.yaml (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/expect-stderr2 (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/expect-stderr3 (0.00s) --- PASS: TestLatest/testdata/script/def_jsonschema.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/openapi.json (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/openapi2.json (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-json-out (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-yaml-out (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-cue-out (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-cue (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-cue2 (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-cue2#01 (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-cue3 (0.00s) --- PASS: TestLatest/testdata/script/def_openapi.txt/expect-out.cue (0.00s) --- PASS: TestLatest/testdata/script/def_proto.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/def_proto.txt/policy.proto (0.00s) --- PASS: TestLatest/testdata/script/def_proto.txt/include/google/protobuf/timestamp.proto (0.00s) --- PASS: TestLatest/testdata/script/def_proto.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/eval_concrete.txt/eval_conc.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_concrete.txt/eval_conc.yaml (0.00s) --- PASS: TestLatest/testdata/script/eval_concrete.txt/cmd_echo.out (0.00s) --- PASS: TestLatest/testdata/script/eval_concrete.txt/data.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_concrete.txt/hello.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_context.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_context.txt/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/eval_context.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/eval_e_hidden.txt/dep.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_e_hidden.txt/tst.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/test.json (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/vector.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/expect-stderr1 (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/expect-stderr2 (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/expect-stderr3 (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/expect-stderr4 (0.00s) --- PASS: TestLatest/testdata/script/eval_flags.txt/expect-stderr5 (0.00s) --- PASS: TestLatest/testdata/script/eval_force.txt/file.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_force.txt/eval.golden (0.00s) --- PASS: TestLatest/testdata/script/eval_hidden.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_hidden.txt/.foo.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_import.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_import.txt/in.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_newline.txt/data.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_newline.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_newline.txt/expect-out.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_rec.txt/rec.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_rec.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_resolve.txt/data.yaml (0.00s) --- PASS: TestLatest/testdata/script/eval_resolve.txt/none.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_resolve.txt/anon.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_resolve.txt/package.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_resolve.txt/check.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_resolve.txt/out-stderr (0.00s) --- PASS: TestLatest/testdata/script/eval_stdin.txt/stdin.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_stdin.txt/t.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_stdin.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_tags.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_tags.txt/tags.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_tool.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/eval_tool.txt/task.cue (0.00s) --- PASS: TestLatest/testdata/script/eval_tool.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/export.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/export.txt/hello/data.cue (0.00s) --- PASS: TestLatest/testdata/script/export.txt/hello/hello.cue (0.00s) --- PASS: TestLatest/testdata/script/export.txt/hello/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/export_expr.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/export_expr.txt/data.cue (0.00s) --- PASS: TestLatest/testdata/script/export_force.txt/file.cue (0.00s) --- PASS: TestLatest/testdata/script/export_force.txt/test.yml.golden (0.00s) --- PASS: TestLatest/testdata/script/export_list.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/export_list.txt/import/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/export_list.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/export_select.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/export_select.txt/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/export_select.txt/bar.cue (0.00s) --- PASS: TestLatest/testdata/script/export_select.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/export_select.txt/cue.mod/gen/example.org/bar/bar.cue (0.00s) --- PASS: TestLatest/testdata/script/export_yaml.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/export_yaml.txt/hello/data.cue (0.00s) --- PASS: TestLatest/testdata/script/export_yaml.txt/hello/hello.cue (0.00s) --- PASS: TestLatest/testdata/script/export_yaml.txt/hello/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/file_forms.txt/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/file_forms.txt/bar.cue (0.00s) --- PASS: TestLatest/testdata/script/file_forms.txt/expect-data-foo (0.00s) --- PASS: TestLatest/testdata/script/file_forms.txt/expect-data-bar (0.00s) --- PASS: TestLatest/testdata/script/file_forms.txt/expect-graph-bar (0.00s) --- PASS: TestLatest/testdata/script/fmt_err.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_err.txt/x.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_err.txt/out/x_cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/x.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/star.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/y.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/yb.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/out/x.cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/out/star-cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/out/y-cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_multi.txt/out/yb-cue (0.00s) --- PASS: TestLatest/testdata/script/fmt_stdin.txt/feed (0.00s) --- PASS: TestLatest/testdata/script/fmt_stdin.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/fmt_stdin.txt/fmt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_bad_embed.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_bad_embed.txt/go.mod.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_bad_embed.txt/blah.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_bad_embed.txt/blah.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_local.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_local.txt/go.mod.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_local.txt/blah.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_local.txt/all.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_local.txt/other.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_non_local.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/get_go_non_local.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_non_local.txt/go.mod.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_non_local.txt/cuedeps.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_non_local.txt/cue.mod/gen/example.com/blah/blah_go_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_non_local.txt/cue.mod/gen/example.com/blah/blah_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_type_errors.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_type_errors.txt/go.mod.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_type_errors.txt/blah.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_type_errors.txt/blah.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/go.mod.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg1/alias.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg1/file1.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg2/add.cue (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg2/pkg2.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg3/pkg3.go (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg1/alias_go_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg1/file1_go_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg2/pkg2_go_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg3/pkg3_go_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg1/alias_go_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg1/file1_go_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg2/add_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg2/pkg2_go_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_types.txt/pkg3/pkg3_go_gen.cue.golden (0.00s) --- PASS: TestLatest/testdata/script/get_go_unresolvable_package.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/goproxytest.txt/go.mod (0.00s) --- PASS: TestLatest/testdata/script/goproxytest.txt/main.go (0.00s) --- PASS: TestLatest/testdata/script/goproxytest.txt/go.mod.golden (0.00s) --- PASS: TestLatest/testdata/script/help.txt/stdout.golden (0.00s) --- PASS: TestLatest/testdata/script/help_cmd.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/help_cmd.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/help_cmd.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/help_cmd_flags.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/help_cmd_flags.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/help_cmd_flags.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/bar.cue (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/foo.yaml (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/stdout-export (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/stdout-foo (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/stdout-name (0.00s) --- PASS: TestLatest/testdata/script/help_doc.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/help_hello.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/help_hello.txt/task_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/help_hello.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/hidden.txt/pkg.cue (0.00s) --- PASS: TestLatest/testdata/script/hidden.txt/file.cue (0.00s) --- PASS: TestLatest/testdata/script/hidden.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_auto.txt/expect-openapi (0.00s) --- PASS: TestLatest/testdata/script/import_auto.txt/openapi.yaml (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/x.crt (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/y.crt2 (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/bin.cue (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/str.cue (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/out/bin (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/out/str (0.00s) --- PASS: TestLatest/testdata/script/import_binary.txt/out/expect.cue (0.00s) --- PASS: TestLatest/testdata/script/import_context.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_context.txt/import/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/import_context.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/import_dir.txt/x.yml (0.00s) --- PASS: TestLatest/testdata/script/import_dir.txt/expect.cue (0.00s) --- PASS: TestLatest/testdata/script/import_files.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_files.txt/import/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/import_files.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/import_hoiststr.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_hoiststr.txt/import/services.cue (0.00s) --- PASS: TestLatest/testdata/script/import_hoiststr.txt/import/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/import_hoiststr.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/expect-stdout1 (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/expect-stdout2 (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/expect3 (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/import1/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/import2/data.jsonl (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/import3/data.json (0.00s) --- PASS: TestLatest/testdata/script/import_list.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/import_match.txt/uni.yml (0.00s) --- PASS: TestLatest/testdata/script/import_match.txt/service.yaml (0.00s) --- PASS: TestLatest/testdata/script/import_match.txt/out/expect-uni.cue (0.00s) --- PASS: TestLatest/testdata/script/import_path.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_path.txt/import/services.jsonl (0.00s) --- PASS: TestLatest/testdata/script/import_path.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/root/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/root/cue.mod/module.cue#01 (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/root/cue.mod/gen/googleapis.com/acme/test/test/test_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/root/mixer/v1/attributes.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/root/mixer/v1/config/client/client_config.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/include/acme/test.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/include/acme/test/test.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/include/google/protobuf/timestamp.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/expect-attributes_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/expect-client_config_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto.txt/expect-test_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/root/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/root/cue.mod/module.cue#01 (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/root/cue.mod/gen/googleapis.com/acme/test/test/test_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/root/mixer/v1/attributes.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/root/mixer/v1/config/client/client_config.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/include/acme/test.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/include/acme/test/test.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/include/google/protobuf/timestamp.proto (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/expect-attributes_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/expect-client_config_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/import_proto2.txt/expect-test_proto_gen.cue (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/test.cue (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/vars.cue (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/err.cue (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/vars_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/expect-stdout-vars (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/expect-stderr-err (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/expect-stdout-override (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/expect-stdout-novars (0.00s) --- PASS: TestLatest/testdata/script/inject.txt/expect-stdout-tool (0.00s) --- PASS: TestLatest/testdata/script/issue116.txt/in (0.00s) --- PASS: TestLatest/testdata/script/issue116.txt/stdout-cue1 (0.00s) --- PASS: TestLatest/testdata/script/issue116.txt/stdout-cue2 (0.00s) --- PASS: TestLatest/testdata/script/issue116.txt/stdout-cue3 (0.00s) --- PASS: TestLatest/testdata/script/issue116.txt/stdout-json (0.00s) --- PASS: TestLatest/testdata/script/issue116.txt/dummy (0.00s) --- PASS: TestLatest/testdata/script/issue217.txt/schema.cue (0.00s) --- PASS: TestLatest/testdata/script/issue217.txt/def-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue217.txt/eval-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue236.txt/in.cue (0.00s) --- PASS: TestLatest/testdata/script/issue269.txt/struct.cue (0.00s) --- PASS: TestLatest/testdata/script/issue269.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/issue269.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue289.txt/test.yaml (0.00s) --- PASS: TestLatest/testdata/script/issue289.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/issue302.txt/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/issue302.txt/rewritten (0.00s) --- PASS: TestLatest/testdata/script/issue303.txt/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/issue303.txt/rewritten (0.00s) --- PASS: TestLatest/testdata/script/issue304.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue304.txt/x.cue (0.00s) --- PASS: TestLatest/testdata/script/issue398.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/issue398.txt/pkg/foo.cue (0.00s) --- PASS: TestLatest/testdata/script/issue398.txt/pkg/bar.cue (0.00s) --- PASS: TestLatest/testdata/script/issue398.txt/pkg/baz.cue (0.00s) --- PASS: TestLatest/testdata/script/issue398.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue425.txt/list.cue (0.00s) --- PASS: TestLatest/testdata/script/issue425.txt/list.json (0.00s) --- PASS: TestLatest/testdata/script/issue425.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue461.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/issue461.txt/expect-hello (0.00s) --- PASS: TestLatest/testdata/script/issue461.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/issue473.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/issue473.txt/x.cue (0.00s) --- PASS: TestLatest/testdata/script/issue476.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/issue476.txt/y.cue (0.00s) --- PASS: TestLatest/testdata/script/issue476.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue512.txt/bools.cue (0.00s) --- PASS: TestLatest/testdata/script/issue520.txt/cue.mod/module.cue (0.00s) --- PASS: TestLatest/testdata/script/issue520.txt/my.cue (0.00s) --- PASS: TestLatest/testdata/script/issue520.txt/my_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/issue525.txt/x.cue (0.00s) --- PASS: TestLatest/testdata/script/issue525.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/issue526.txt/x.cue (0.00s) --- PASS: TestLatest/testdata/script/issue526.txt/x_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/issue749.txt/float.cue (0.00s) --- PASS: TestLatest/testdata/script/issue749.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/issue749.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/issue986.txt/in.cue (0.00s) --- PASS: TestLatest/testdata/script/issue986.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/data.cue (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/t.cue (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/kube.cue (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/foo/kube2.cue (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/stdout-t (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/stdout-files (0.00s) --- PASS: TestLatest/testdata/script/load_pkg.txt/stdout-pkg (0.00s) --- PASS: TestLatest/testdata/script/merge_interaction.txt/combine.cue (0.00s) --- PASS: TestLatest/testdata/script/merge_interaction.txt/combine_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/merge_interaction.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/merge_interaction.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/no_read_stdin.txt/- (0.00s) --- PASS: TestLatest/testdata/script/no_read_stdin.txt/expect-stderr (0.00s) --- PASS: TestLatest/testdata/script/toolonly.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/toolonly.txt/foo_tool.cue (0.00s) --- PASS: TestLatest/testdata/script/trim.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/trim.txt/trim/trim.cue (0.00s) --- PASS: TestLatest/testdata/script/trim.txt/cue.mod (0.00s) --- PASS: TestLatest/testdata/script/trim_force.txt/file.cue (0.00s) --- PASS: TestLatest/testdata/script/vet_altdata.txt/schema.cue (0.00s) --- PASS: TestLatest/testdata/script/vet_altdata.txt/foo.data (0.00s) --- PASS: TestLatest/testdata/script/vet_altdata.txt/export-stdout (0.00s) --- PASS: TestLatest/testdata/script/vet_embed.txt/schema.cue (0.00s) --- PASS: TestLatest/testdata/script/vet_embed.txt/foo.yaml (0.00s) --- PASS: TestLatest/testdata/script/vet_embed.txt/stream.yaml (0.00s) --- PASS: TestLatest/testdata/script/vet_embed.txt/expect-foo (0.00s) --- PASS: TestLatest/testdata/script/vet_embed.txt/expect-stream (0.00s) --- PASS: TestLatest/testdata/script/vet_embed.txt/expect-stream#01 (0.00s) --- PASS: TestLatest/testdata/script/vet_opt.txt/expect-stdout (0.00s) --- PASS: TestLatest/testdata/script/vet_opt.txt/vet.cue (0.00s) === RUN TestScript === RUN TestScript/cmd_after === PAUSE TestScript/cmd_after === RUN TestScript/cmd_baddisplay === PAUSE TestScript/cmd_baddisplay === RUN TestScript/cmd_closed === PAUSE TestScript/cmd_closed === RUN TestScript/cmd_dep === PAUSE TestScript/cmd_dep === RUN TestScript/cmd_dep_cycle === PAUSE TestScript/cmd_dep_cycle === RUN TestScript/cmd_deppkg === PAUSE TestScript/cmd_deppkg === RUN TestScript/cmd_echo === PAUSE TestScript/cmd_echo === RUN TestScript/cmd_embed === PAUSE TestScript/cmd_embed === RUN TestScript/cmd_env === PAUSE TestScript/cmd_env === RUN TestScript/cmd_err === PAUSE TestScript/cmd_err === RUN TestScript/cmd_errcode === PAUSE TestScript/cmd_errcode === RUN TestScript/cmd_errpos === PAUSE TestScript/cmd_errpos === RUN TestScript/cmd_filetypes === PAUSE TestScript/cmd_filetypes === RUN TestScript/cmd_func === PAUSE TestScript/cmd_func === RUN TestScript/cmd_github === PAUSE TestScript/cmd_github === RUN TestScript/cmd_http === PAUSE TestScript/cmd_http === RUN TestScript/cmd_import === PAUSE TestScript/cmd_import === RUN TestScript/cmd_inferred === PAUSE TestScript/cmd_inferred === RUN TestScript/cmd_issue650 === PAUSE TestScript/cmd_issue650 === RUN TestScript/cmd_jsonpb === PAUSE TestScript/cmd_jsonpb === RUN TestScript/cmd_notool === PAUSE TestScript/cmd_notool === RUN TestScript/cmd_notool2 === PAUSE TestScript/cmd_notool2 === RUN TestScript/cmd_print === PAUSE TestScript/cmd_print === RUN TestScript/cmd_ref === PAUSE TestScript/cmd_ref === RUN TestScript/cmd_run === PAUSE TestScript/cmd_run === RUN TestScript/cmd_run_list === PAUSE TestScript/cmd_run_list === RUN TestScript/cmd_stdin === PAUSE TestScript/cmd_stdin === RUN TestScript/cmd_tags === PAUSE TestScript/cmd_tags === RUN TestScript/cmd_textproto === PAUSE TestScript/cmd_textproto === RUN TestScript/def_basic === PAUSE TestScript/def_basic === RUN TestScript/def_force === PAUSE TestScript/def_force === RUN TestScript/def_jsonschema === PAUSE TestScript/def_jsonschema === RUN TestScript/def_openapi === PAUSE TestScript/def_openapi === RUN TestScript/def_proto === PAUSE TestScript/def_proto === RUN TestScript/eval_concrete === PAUSE TestScript/eval_concrete === RUN TestScript/eval_context === PAUSE TestScript/eval_context === RUN TestScript/eval_e === PAUSE TestScript/eval_e === RUN TestScript/eval_e_hidden === PAUSE TestScript/eval_e_hidden === RUN TestScript/eval_errs === PAUSE TestScript/eval_errs === RUN TestScript/eval_expr === PAUSE TestScript/eval_expr === RUN TestScript/eval_flags === PAUSE TestScript/eval_flags === RUN TestScript/eval_force === PAUSE TestScript/eval_force === RUN TestScript/eval_hidden === PAUSE TestScript/eval_hidden === RUN TestScript/eval_hiddenfail === PAUSE TestScript/eval_hiddenfail === RUN TestScript/eval_import === PAUSE TestScript/eval_import === RUN TestScript/eval_loaderr === PAUSE TestScript/eval_loaderr === RUN TestScript/eval_newline === PAUSE TestScript/eval_newline === RUN TestScript/eval_rec === PAUSE TestScript/eval_rec === RUN TestScript/eval_resolve === PAUSE TestScript/eval_resolve === RUN TestScript/eval_stdin === PAUSE TestScript/eval_stdin === RUN TestScript/eval_tags === PAUSE TestScript/eval_tags === RUN TestScript/eval_tool === PAUSE TestScript/eval_tool === RUN TestScript/export === PAUSE TestScript/export === RUN TestScript/export_err === PAUSE TestScript/export_err === RUN TestScript/export_expr === PAUSE TestScript/export_expr === RUN TestScript/export_force === PAUSE TestScript/export_force === RUN TestScript/export_list === PAUSE TestScript/export_list === RUN TestScript/export_select === PAUSE TestScript/export_select === RUN TestScript/export_yaml === PAUSE TestScript/export_yaml === RUN TestScript/file_forms === PAUSE TestScript/file_forms === RUN TestScript/fix === PAUSE TestScript/fix === RUN TestScript/fix_files === PAUSE TestScript/fix_files === RUN TestScript/fix_pkg === PAUSE TestScript/fix_pkg === RUN TestScript/fmt === PAUSE TestScript/fmt === RUN TestScript/fmt_err === PAUSE TestScript/fmt_err === RUN TestScript/fmt_multi === PAUSE TestScript/fmt_multi === RUN TestScript/fmt_stdin === PAUSE TestScript/fmt_stdin === RUN TestScript/get_go_bad_embed === PAUSE TestScript/get_go_bad_embed === RUN TestScript/get_go_local === PAUSE TestScript/get_go_local === RUN TestScript/get_go_non_local === PAUSE TestScript/get_go_non_local === RUN TestScript/get_go_type_errors === PAUSE TestScript/get_go_type_errors === RUN TestScript/get_go_types === PAUSE TestScript/get_go_types === RUN TestScript/get_go_unresolvable_package === PAUSE TestScript/get_go_unresolvable_package === RUN TestScript/go_cmd === PAUSE TestScript/go_cmd === RUN TestScript/goproxytest === PAUSE TestScript/goproxytest === RUN TestScript/help === PAUSE TestScript/help === RUN TestScript/help_cmd === PAUSE TestScript/help_cmd === RUN TestScript/help_cmd_flags === PAUSE TestScript/help_cmd_flags === RUN TestScript/help_doc === PAUSE TestScript/help_doc === RUN TestScript/help_hello === PAUSE TestScript/help_hello === RUN TestScript/hidden === PAUSE TestScript/hidden === RUN TestScript/import_auto === PAUSE TestScript/import_auto === RUN TestScript/import_binary === PAUSE TestScript/import_binary === RUN TestScript/import_context === PAUSE TestScript/import_context === RUN TestScript/import_dir === PAUSE TestScript/import_dir === RUN TestScript/import_files === PAUSE TestScript/import_files === RUN TestScript/import_hoiststr === PAUSE TestScript/import_hoiststr === RUN TestScript/import_list === PAUSE TestScript/import_list === RUN TestScript/import_match === PAUSE TestScript/import_match === RUN TestScript/import_path === PAUSE TestScript/import_path === RUN TestScript/import_proto === PAUSE TestScript/import_proto === RUN TestScript/import_proto2 === PAUSE TestScript/import_proto2 === RUN TestScript/inject === PAUSE TestScript/inject === RUN TestScript/injecterr === PAUSE TestScript/injecterr === RUN TestScript/install === PAUSE TestScript/install === RUN TestScript/install_contributing === PAUSE TestScript/install_contributing === RUN TestScript/install_contributing_go1.16 === PAUSE TestScript/install_contributing_go1.16 === RUN TestScript/install_go1.16 === PAUSE TestScript/install_go1.16 === RUN TestScript/issue116 === PAUSE TestScript/issue116 === RUN TestScript/issue174 === PAUSE TestScript/issue174 === RUN TestScript/issue217 === PAUSE TestScript/issue217 === RUN TestScript/issue236 === PAUSE TestScript/issue236 === RUN TestScript/issue269 === PAUSE TestScript/issue269 === RUN TestScript/issue289 === PAUSE TestScript/issue289 === RUN TestScript/issue302 === PAUSE TestScript/issue302 === RUN TestScript/issue303 === PAUSE TestScript/issue303 === RUN TestScript/issue304 === PAUSE TestScript/issue304 === RUN TestScript/issue312 === PAUSE TestScript/issue312 === RUN TestScript/issue315 === PAUSE TestScript/issue315 === RUN TestScript/issue322 === PAUSE TestScript/issue322 === RUN TestScript/issue324 === PAUSE TestScript/issue324 === RUN TestScript/issue398 === PAUSE TestScript/issue398 === RUN TestScript/issue425 === PAUSE TestScript/issue425 === RUN TestScript/issue461 === PAUSE TestScript/issue461 === RUN TestScript/issue473 === PAUSE TestScript/issue473 === RUN TestScript/issue476 === PAUSE TestScript/issue476 === RUN TestScript/issue477 === PAUSE TestScript/issue477 === RUN TestScript/issue512 === PAUSE TestScript/issue512 === RUN TestScript/issue520 === PAUSE TestScript/issue520 === RUN TestScript/issue525 === PAUSE TestScript/issue525 === RUN TestScript/issue526 === PAUSE TestScript/issue526 === RUN TestScript/issue749 === PAUSE TestScript/issue749 === RUN TestScript/issue986 === PAUSE TestScript/issue986 === RUN TestScript/load_pkg === PAUSE TestScript/load_pkg === RUN TestScript/merge_interaction === PAUSE TestScript/merge_interaction === RUN TestScript/no_read_stdin === PAUSE TestScript/no_read_stdin === RUN TestScript/toolonly === PAUSE TestScript/toolonly === RUN TestScript/trim === PAUSE TestScript/trim === RUN TestScript/trim_force === PAUSE TestScript/trim_force === RUN TestScript/vet === PAUSE TestScript/vet === RUN TestScript/vet_altdata === PAUSE TestScript/vet_altdata === RUN TestScript/vet_concrete === PAUSE TestScript/vet_concrete === RUN TestScript/vet_data === PAUSE TestScript/vet_data === RUN TestScript/vet_embed === PAUSE TestScript/vet_embed === RUN TestScript/vet_expr === PAUSE TestScript/vet_expr === RUN TestScript/vet_file === PAUSE TestScript/vet_file === RUN TestScript/vet_opt === PAUSE TestScript/vet_opt === RUN TestScript/vet_path === PAUSE TestScript/vet_path === RUN TestScript/vet_yaml === PAUSE TestScript/vet_yaml === CONT TestScript/cmd_baddisplay === CONT TestScript/get_go_type_errors === CONT TestScript/eval_context === CONT TestScript/export_err === CONT TestScript/issue303 === CONT TestScript/issue986 === CONT TestScript/issue473 === CONT TestScript/import_match === CONT TestScript/cmd_issue650 === CONT TestScript/issue749 === CONT TestScript/vet_yaml === CONT TestScript/issue461 === CONT TestScript/issue302 === CONT TestScript/issue289 === CONT TestScript/issue269 === CONT TestScript/cmd_err === CONT TestScript/issue303 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue trim foo.cue > cmp foo.cue rewritten PASS === CONT TestScript/issue236 === CONT TestScript/issue473 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval --out json x.cue [stdout] { "g": { "Terminals": { "client": { "Image": "golang" } }, "Steps": { "list": { "Terminal": "client", "Cmd": "ls" } } } } PASS === CONT TestScript/issue217 === CONT TestScript/issue749 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval ./float.cue [stdout] x: 3.140000104904175 y: 3.14 > cmp stderr expect-stderr > cmp stdout expect-stdout PASS === CONT TestScript/issue174 === CONT TestScript/issue302 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue trim foo.cue > cmp foo.cue rewritten PASS === CONT TestScript/issue116 === CONT TestScript/issue986 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Hidden values are dropped when outputting CUE. This is fine in eval for # debugging, but not when the final result needs to be compiled again to be # converted to another format. (1.421s) > cue eval in.cue --out yaml [stdout] a: aaa b: bbb ab: aaabbb cd: cccddd > cmp stdout expect-stdout PASS === CONT TestScript/install_go1.16 cmd.go:360: Install tests use the network and take some time testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we can install CUE via the new Go 1.16 go install # method described in the project README # # Keep this test in sync with all places that describe install # instructions (0.003s) > [!go1.16] skip 'Test only applies to Go 1.16' > [!long] skip 'Install tests use the network and take some time' === CONT TestScript/install_contributing_go1.16 cmd.go:360: Install tests use the network and take some time testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we can install tools required to contribute to the CUE # project via the new Go 1.16 method # # Keep this test in sync with all places that describe install # instructions for contributing (0.000s) > [!go1.16] skip 'Test only applies to Go 1.16' > [!long] skip 'Install tests use the network and take some time' === CONT TestScript/install_contributing cmd.go:360: Install tests use the network and take some time testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we can install tools required to contribute to the CUE # project using the pre Go 1.16 install method (which should also # work with Go 1.16) # # Keep this test in sync with all places that describe install # instructions for contributing (0.000s) > [!long] skip 'Install tests use the network and take some time' === CONT TestScript/install cmd.go:360: Install tests use the network and take some time testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we can install CUE via the pre Go 1.16 install # method (which should also work with Go 1.16) described in # the project README # # Keep this test in sync with all places that describe install # instructions (0.000s) > [!long] skip 'Install tests use the network and take some time' === CONT TestScript/injecterr === CONT TestScript/vet_yaml testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet ./yaml.cue [stderr] phrases: invalid value "phrases:\n # A quote from Mark Twain.\n quote1:\n lang: en\n attribution: Mark Twain\n\n # A Norwegian proverb.\n proverb:\n lang: no\n text: Stemmen som sier at du ikke klarer det, lyver." (does not satisfy encoding/yaml.Validate({phrases:{},#Phrase:{lang:=~"^[a-zA-Z0-9-_]{2,}$" | false,text:!=""},#LanguageTag:=~"^[a-zA-Z0-9-_]{2,}$" | false})): error in call to encoding/yaml.Validate: incomplete value !="": ./yaml.cue:19:10 ./yaml.cue:11:17 ./yaml.cue:21:10 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/inject === CONT TestScript/issue269 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval ./struct.cue [stdout] #type: { x: 0 i: 0 j: 0 y: 0 } data: { a: { x: 0 i: 0 j: 0 y: 0 } b: { x: 0 i: 0 j: 0 y: 0 } } > cmp stderr expect-stderr > cmp stdout expect-stdout PASS === CONT TestScript/import_proto2 === CONT TestScript/import_match testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -p uni --with-context -l 'path.Ext(filename)' -n '.*uni.yml' ./... > cmp uni.cue out/expect-uni.cue PASS === CONT TestScript/import_proto === CONT TestScript/cmd_issue650 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd test [stdout] success PASS === CONT TestScript/import_path === CONT TestScript/eval_context testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval --with-context -l '"\(path.Ext(filename)):\(index+1)/\(recordCount)"' -l 'data["@name"]' -s services.jsonl [stdout] ".jsonl:1/3": elem1: { kind: "Service" "@name": "elem1" } ".jsonl:2/3": elem2: { kind: "Deployment" "@name": "elem2" } ".jsonl:3/3": elem3: { kind: "Service" "@name": "elem3" } > cmp stdout expect-stdout PASS === CONT TestScript/import_list === CONT TestScript/issue461 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd writefile PASS === CONT TestScript/import_hoiststr === CONT TestScript/issue289 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # TODO: error message could be improved. (1.994s) > ! cue import test.yaml -p kube -l 'strings.ToCamel(kind)' -l metadata.name -f [stderr] error evaluating label strings.ToCamel(kind): reference "kind" not found [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/import_files === CONT TestScript/cmd_baddisplay testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd baddisplay [stderr] command.baddisplay.display.text: conflicting values 42 and string (mismatched types int and string): ./task_tool.cue:6:9 tool/cli:4:9 [exit status 1] > ! stdout . > cmp stderr cmd_baddisplay.out PASS === CONT TestScript/issue526 === CONT TestScript/cmd_err testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd ref [stderr] command.ref.task.display.contents: invalid bytes argument: non-concrete value (string|bytes): ./task_tool.cue:6:8 tool/file:17:3 command.ref.task.display.filename: invalid string argument: non-concrete value string: ./task_tool.cue:6:8 ./task_tool.cue:7:9 tool/file:15:3 tool/file:15:16 [exit status 1] > ! stdout . > cmp stderr cmd_badfields.out PASS === CONT TestScript/import_dir === CONT TestScript/issue236 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue trim PASS === CONT TestScript/import_context === CONT TestScript/injecterr testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval test.cue -t env=prod [stderr] @tag not allowed within optional fields: ./test.cue:5:18 @tag not allowed within optional fields: ./test.cue:6:33 @tag not allowed within lists: ./test.cue:11:30 @tag not allowed within comprehension: ./test.cue:17:19 [exit status 1] > cmp stderr expect-stderr # TODO: report errors for invalid tags? (0.000s) PASS === CONT TestScript/issue525 === CONT TestScript/issue174 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue export ./issue174 [stderr] build constraints exclude all CUE files in ./issue174: issue174/issue174.cue: no package name [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/issue520 === CONT TestScript/import_files testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -o - -f --files ./import [stdout] kind: "Service" name: "booster" kind: "Deployment" name: "booster" replicas: 1 kind: "Service" name: """ supplement foo """ json: "[1, 2]" > cmp stdout expect-stdout PASS === CONT TestScript/import_binary === CONT TestScript/import_proto2 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cd root $WORK/root > cue import proto -I ../include ./... --proto_enum=json [stderr] Skipping file "cue.mod/gen/googleapis.com/acme/test/test/test_proto_gen.cue": already exists. Use -Rf to override. > cd .. $WORK > cmp stderr expect-stderr > cmp stdout expect-stdout > cmp root/mixer/v1/attributes_proto_gen.cue expect-attributes_proto_gen.cue > cmp root/mixer/v1/config/client/client_config_proto_gen.cue expect-client_config_proto_gen.cue > cmp root/cue.mod/gen/googleapis.com/acme/test/test_proto_gen.cue expect-test_proto_gen.cue PASS === CONT TestScript/import_auto === CONT TestScript/import_proto testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cd root $WORK/root > cue import proto -I ../include ./... [stderr] Skipping file "cue.mod/gen/googleapis.com/acme/test/test/test_proto_gen.cue": already exists. Use -Rf to override. > cd .. $WORK > cmp stderr expect-stderr > cmp stdout expect-stdout > cmp root/mixer/v1/attributes_proto_gen.cue expect-attributes_proto_gen.cue > cmp root/mixer/v1/config/client/client_config_proto_gen.cue expect-client_config_proto_gen.cue > cmp root/cue.mod/gen/googleapis.com/acme/test/test_proto_gen.cue expect-test_proto_gen.cue PASS === CONT TestScript/issue512 === CONT TestScript/issue526 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd gengithub PASS === CONT TestScript/hidden === CONT TestScript/issue525 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd gengithub PASS === CONT TestScript/issue477 === CONT TestScript/import_dir testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -p foo ./... > cmp x.cue expect.cue PASS === CONT TestScript/issue476 === CONT TestScript/issue520 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd -t greeting=hello prefix [stdout] hello hello hello PASS === CONT TestScript/help_hello === CONT TestScript/issue217 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval [stdout] x: { a: string b: string } #A: string > cmp stdout eval-stdout > cue def [stdout] package tst x: { a: #A b: #A } #A: string | [#A] > cmp stdout def-stdout PASS === CONT TestScript/help_doc === CONT TestScript/import_path testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -o - -f -l '"\(strings.ToLower(kind))": "\(name)":' ./import [stdout] service: booster: { kind: "Service" name: "booster" } deployment: booster: { kind: "Deployment" name: "booster" replicas: 1 } service: "supplement\nfoo": { kind: "Service" name: """ supplement foo """ json: "[1, 2]" } > cmp stdout expect-stdout > cue import -o - -f -l 'strings.ToLower(kind)' -l name ./import [stdout] service: booster: { kind: "Service" name: "booster" } deployment: booster: { kind: "Deployment" name: "booster" replicas: 1 } service: "supplement\nfoo": { kind: "Service" name: """ supplement foo """ json: "[1, 2]" } > cmp stdout expect-stdout PASS === CONT TestScript/help_cmd_flags === CONT TestScript/import_auto testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -o - ./openapi.yaml [stdout] // An OpenAPI file info: { title: *"An OpenAPI file" | string version: *"v1beta1" | string } #Foo: { a: int b: int & <10 & >=0 ... } #Bar: { foo: #Foo ... } > cmp stdout expect-openapi PASS === CONT TestScript/help_cmd === CONT TestScript/export_err testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval ./exporterr --out json [stderr] a.b.2.c: incomplete value int out: invalid interpolation: undefined field: d: ./exporterr/export_err.cue:7:6 ./exporterr/export_err.cue:7:16 [exit status 1] > cmp stdout expect-stdout > cmp stderr expect-stderr > ! cue eval ./exporterr -c [stderr] a.b.2.c: incomplete value int out: invalid interpolation: undefined field: d: ./exporterr/export_err.cue:7:6 ./exporterr/export_err.cue:7:16 [exit status 1] > cmp stdout expect-stdout > cmp stderr expect-stderr > ! cue export ./exporterr [stderr] a.b.2.c: incomplete value int out: invalid interpolation: undefined field: d: ./exporterr/export_err.cue:7:6 ./exporterr/export_err.cue:7:16 [exit status 1] > cmp stdout expect-stdout > cmp stderr expect-stderr PASS === CONT TestScript/help === CONT TestScript/issue477 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd print [stderr] imported and not used: "strings": ./x_tool.cue:4:5 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/goproxytest === CONT TestScript/import_hoiststr testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -o - -f --list -l '"\(strings.ToLower(kind))": "\(name)":' --recursive ./import [stdout] import json656e63 "encoding/json" service: { booster: [{ kind: "Service" name: "booster" }] "supplement\nfoo": [{ kind: "Service" name: """ supplement foo """ json: json656e63.Marshal(_cue_json) let _cue_json = [1, 2] }] } deployment: booster: [{ kind: "Deployment" name: "booster" replicas: 1 }] > cmp stdout expect-stdout > cue import -o - -f --list -l 'strings.ToLower(kind)' -l name --recursive ./import [stdout] import json656e63 "encoding/json" service: { booster: [{ kind: "Service" name: "booster" }] "supplement\nfoo": [{ kind: "Service" name: """ supplement foo """ json: json656e63.Marshal(_cue_json) let _cue_json = [1, 2] }] } deployment: booster: [{ kind: "Deployment" name: "booster" replicas: 1 }] > cmp stdout expect-stdout PASS === CONT TestScript/go_cmd === CONT TestScript/issue476 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd dostuffloop [stdout] yaml is {} > cmp stdout expect-stdout PASS === CONT TestScript/get_go_unresolvable_package === CONT TestScript/import_context testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -o - -f --with-context -l '"\(path.Ext(filename)):\(index+1)/\(recordCount)": "\(data["@name"])":' ./import [stdout] ".jsonl:1/3": elem1: { kind: "Service" "@name": "elem1" } ".jsonl:2/3": elem2: { kind: "Deployment" "@name": "elem2" } ".jsonl:3/3": elem3: { kind: "Service" "@name": "elem3" } > cmp stdout expect-stdout > cue import -o - -f --with-context -l '"\(path.Ext(filename)):\(index+1)/\(recordCount)"' -l 'data["@name"]' ./import [stdout] ".jsonl:1/3": elem1: { kind: "Service" "@name": "elem1" } ".jsonl:2/3": elem2: { kind: "Deployment" "@name": "elem2" } ".jsonl:3/3": elem3: { kind: "Service" "@name": "elem3" } > cmp stdout expect-stdout PASS === CONT TestScript/get_go_types === CONT TestScript/go_cmd testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Basic sanity check that go command works as expected # within testscript tests (0.546s) > go version [stdout] go version go1.17.6 linux/riscv64 > stdout '^go version' PASS === CONT TestScript/fix_pkg cmd.go:360: No longer supported, but keeping around until for sure. testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > skip 'No longer supported, but keeping around until for sure.' === CONT TestScript/get_go_non_local === CONT TestScript/help_hello testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue help cmd hello [stdout] Hello can be used to say hello to the world. Usage: cue cmd hello [flags] Flags: -h, --help help for hello Global Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress > cmp stdout expect-stdout PASS === CONT TestScript/get_go_local === CONT TestScript/issue512 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue export -o bools.yaml bools.cue > cue import -o bools2.cue bools.yaml > cmp bools.cue bools2.cue PASS === CONT TestScript/get_go_bad_embed cmd.go:362: testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we get a sensible error message when there is a type # checking error in the package that is being 'cue get go'-ed. (0.000s) > [!go1.16] skip 'Only relevant for Go 1.16 and above' > [golang.org/issue/44287] skip === CONT TestScript/fmt_stdin go proxy: no archive example.com v1.0.0 === CONT TestScript/import_list testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import -o - -f -l "\(strings.ToLower(kind))" --list ./import1 [stdout] service: [{ kind: "Service" name: "booster" }, { kind: "Service" name: """ supplement foo """ json: "[1, 2]" }] deployment: [{ kind: "Deployment" name: "booster" replicas: 1 }] > cmp stdout expect-stdout1 # Issue #368 (1.717s) > cue import -o - -f --list ./import2 [stdout] [[{a: 1}], [{b: 2}]] > cmp stdout expect-stdout2 # Issue #369 (1.506s) > cue import --with-context -l '"\(path.Ext(filename))": data' ./import3/data.json > cmpenv import3/data.cue expect3 PASS === CONT TestScript/fmt_multi === CONT TestScript/help_cmd testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue help cmd [stdout] cmd executes the named command for each of the named instances. Commands define actions on instances. For example, they may specify how to upload a configuration to Kubernetes. Commands are defined directly in tool files, which are regular CUE files within the same package with a filename ending in _tool.cue. These are typically defined at the module root so that they apply to all instances. Each command consists of one or more tasks. A task may, for example, load or write a file, consult a user on the command line, fetch a web page, and so on. Each task has inputs and outputs. Outputs are typically filled out by the task implementation as the task completes. Inputs of tasks my refer to outputs of other tasks. The cue tool does a static analysis of the configuration and only starts tasks that are fully specified. Upon completion of each task, cue rewrites the instance, filling in the completed task, and reevaluates which other tasks can now start, and so on until all tasks have completed. Available tasks can be found in the package documentation at https://pkg.go.dev/cuelang.org/go/pkg/tool?tab=subdirectories Examples: In this simple example, we define a command called "hello", which declares a single task called "print" which uses "tool/exec.Run" to execute a shell command that echos output to the terminal: $ cat < hello_tool.cue package foo import "tool/exec" city: "Amsterdam" who: *"World" | string @tag(who) // Say hello! command: hello: { print: exec.Run & { cmd: "echo Hello \(who)! Welcome to \(city)." } } EOF We run the "hello" command like this: $ cue cmd hello Hello World! Welcome to Amsterdam. $ cue cmd --inject who=Jan hello Hello Jan! Welcome to Amsterdam. In this example we declare the "prompted" command which has four tasks. The first task prompts the user for a string input. The second task depends on the first, and echos the response back to the user with a friendly message. The third task pipes the output from the second to a file. The fourth task pipes the output from the second to standard output (i.e. it echos it again). package foo import ( "tool/cli" "tool/exec" "tool/file" ) city: "Amsterdam" // Say hello! command: prompter: { // save transcript to this file var: file: *"out.txt" | string @tag(file) ask: cli.Ask & { prompt: "What is your name?" response: string } // starts after ask echo: exec.Run & { cmd: ["echo", "Hello", ask.response + "!"] stdout: string // capture stdout } // starts after echo append: file.Append & { filename: var.file contents: echo.stdout } // also starts after echo print: cli.Print & { text: echo.stdout } } Run "cue help commands" for more details on tasks and commands. Usage: cue cmd [inputs] [flags] cue cmd [command] Available Commands: echo echo something back hello say hello to someone Flags: -h, --help help for cmd -t, --inject stringArray set the value of a tagged field -T, --inject-vars inject system variables in tags (default true) Global Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Use "cue cmd [command] --help" for more information about a command. > cmp stdout expect-stdout PASS === CONT TestScript/fmt_err === CONT TestScript/help_cmd_flags testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd -h [stdout] cmd executes the named command for each of the named instances. Commands define actions on instances. For example, they may specify how to upload a configuration to Kubernetes. Commands are defined directly in tool files, which are regular CUE files within the same package with a filename ending in _tool.cue. These are typically defined at the module root so that they apply to all instances. Each command consists of one or more tasks. A task may, for example, load or write a file, consult a user on the command line, fetch a web page, and so on. Each task has inputs and outputs. Outputs are typically filled out by the task implementation as the task completes. Inputs of tasks my refer to outputs of other tasks. The cue tool does a static analysis of the configuration and only starts tasks that are fully specified. Upon completion of each task, cue rewrites the instance, filling in the completed task, and reevaluates which other tasks can now start, and so on until all tasks have completed. Available tasks can be found in the package documentation at https://pkg.go.dev/cuelang.org/go/pkg/tool?tab=subdirectories Examples: In this simple example, we define a command called "hello", which declares a single task called "print" which uses "tool/exec.Run" to execute a shell command that echos output to the terminal: $ cat < hello_tool.cue package foo import "tool/exec" city: "Amsterdam" who: *"World" | string @tag(who) // Say hello! command: hello: { print: exec.Run & { cmd: "echo Hello \(who)! Welcome to \(city)." } } EOF We run the "hello" command like this: $ cue cmd hello Hello World! Welcome to Amsterdam. $ cue cmd --inject who=Jan hello Hello Jan! Welcome to Amsterdam. In this example we declare the "prompted" command which has four tasks. The first task prompts the user for a string input. The second task depends on the first, and echos the response back to the user with a friendly message. The third task pipes the output from the second to a file. The fourth task pipes the output from the second to standard output (i.e. it echos it again). package foo import ( "tool/cli" "tool/exec" "tool/file" ) city: "Amsterdam" // Say hello! command: prompter: { // save transcript to this file var: file: *"out.txt" | string @tag(file) ask: cli.Ask & { prompt: "What is your name?" response: string } // starts after ask echo: exec.Run & { cmd: ["echo", "Hello", ask.response + "!"] stdout: string // capture stdout } // starts after echo append: file.Append & { filename: var.file contents: echo.stdout } // also starts after echo print: cli.Print & { text: echo.stdout } } Run "cue help commands" for more details on tasks and commands. Usage: cue cmd [inputs] [flags] Flags: -h, --help help for cmd -t, --inject stringArray set the value of a tagged field -T, --inject-vars inject system variables in tags (default true) Global Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress [stderr] Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. > cmp stdout expect-stdout > cue cmd --help [stdout] cmd executes the named command for each of the named instances. Commands define actions on instances. For example, they may specify how to upload a configuration to Kubernetes. Commands are defined directly in tool files, which are regular CUE files within the same package with a filename ending in _tool.cue. These are typically defined at the module root so that they apply to all instances. Each command consists of one or more tasks. A task may, for example, load or write a file, consult a user on the command line, fetch a web page, and so on. Each task has inputs and outputs. Outputs are typically filled out by the task implementation as the task completes. Inputs of tasks my refer to outputs of other tasks. The cue tool does a static analysis of the configuration and only starts tasks that are fully specified. Upon completion of each task, cue rewrites the instance, filling in the completed task, and reevaluates which other tasks can now start, and so on until all tasks have completed. Available tasks can be found in the package documentation at https://pkg.go.dev/cuelang.org/go/pkg/tool?tab=subdirectories Examples: In this simple example, we define a command called "hello", which declares a single task called "print" which uses "tool/exec.Run" to execute a shell command that echos output to the terminal: $ cat < hello_tool.cue package foo import "tool/exec" city: "Amsterdam" who: *"World" | string @tag(who) // Say hello! command: hello: { print: exec.Run & { cmd: "echo Hello \(who)! Welcome to \(city)." } } EOF We run the "hello" command like this: $ cue cmd hello Hello World! Welcome to Amsterdam. $ cue cmd --inject who=Jan hello Hello Jan! Welcome to Amsterdam. In this example we declare the "prompted" command which has four tasks. The first task prompts the user for a string input. The second task depends on the first, and echos the response back to the user with a friendly message. The third task pipes the output from the second to a file. The fourth task pipes the output from the second to standard output (i.e. it echos it again). package foo import ( "tool/cli" "tool/exec" "tool/file" ) city: "Amsterdam" // Say hello! command: prompter: { // save transcript to this file var: file: *"out.txt" | string @tag(file) ask: cli.Ask & { prompt: "What is your name?" response: string } // starts after ask echo: exec.Run & { cmd: ["echo", "Hello", ask.response + "!"] stdout: string // capture stdout } // starts after echo append: file.Append & { filename: var.file contents: echo.stdout } // also starts after echo print: cli.Print & { text: echo.stdout } } Run "cue help commands" for more details on tasks and commands. Usage: cue cmd [inputs] [flags] Flags: -h, --help help for cmd -t, --inject stringArray set the value of a tagged field -T, --inject-vars inject system variables in tags (default true) Global Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress [stderr] Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. > cmp stdout expect-stdout PASS === CONT TestScript/fmt === CONT TestScript/import_binary testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue import binary --ext crt . > cmp x.cue out/expect.cue > cue export bin.cue --out binary [stdout] foo > cmp stdout out/bin # TODO: txtarscript should distinguish final newline (1.146s) > cue export str.cue --out binary [stdout] foo > cmp stdout out/str PASS === CONT TestScript/cmd_tags === CONT TestScript/issue116 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > stdin in > cue import yaml: - [stdout] foo: "bar" > cmp stdout stdout-cue1 > stdin in > cue export yaml: - [stdout] { "foo": "bar" } > cmp stdout stdout-json > stdin in > cue eval yaml: - [stdout] foo: "bar" > cmp stdout stdout-cue2 > stdin in > cue def yaml: - [stdout] foo: "bar" > cmp stdout stdout-cue3 PASS === CONT TestScript/eval_concrete === CONT TestScript/goproxytest testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Basic test to ensure that the goproxytest instance used by various testscript # tests works as expected. (2.732s) > go get example.com/blah [stderr] go: downloading example.com/blah v1.0.0 go get: added example.com/blah v1.0.0 > go mod tidy > cmp go.mod go.mod.golden PASS === CONT TestScript/def_proto === CONT TestScript/hidden testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval pkg.cue -H [stdout] _top: 1 a: { _h0: int } _h2: string #foo: { _h1: string } > cmp stdout expect-stdout > cue eval -H [stdout] _top: 1 a: { _h0: int } _h2: string #foo: { _h1: string } > cmp stdout expect-stdout > cue eval file.cue -H [stdout] _top: 1 a: { _h0: int } _h2: string #foo: { _h1: string } > cmp stdout expect-stdout PASS === CONT TestScript/def_openapi === CONT TestScript/fmt testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue fmt ./fmt [stderr] expected 'STRING', found '.': ./fmt/error.cue:1:9 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/def_jsonschema === CONT TestScript/cmd_tags testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd -t prod -t name=bar tag tags.cue tags_tool.cue [stdout] prod: bar > cmp stdout expect-stdout PASS === CONT TestScript/def_force === CONT TestScript/fmt_stdin testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > stdin feed > cue fmt - [stdout] foo: 2 a: {b: 3} // a comment > cmp stdout expect-stdout PASS === CONT TestScript/def_basic === CONT TestScript/help testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Verify that the various forms of requesting help work (4.035s) > cue help [stdout] cue evaluates CUE files, an extension of JSON, and sends them to user-defined commands for processing. Commands are defined in CUE as follows: import "tool/exec" command: deploy: { exec.Run cmd: "kubectl" args: [ "-f", "deploy" ] in: json.Encode(userValue) // encode the emitted configuration. } cue can also combine the results of http or grpc request with the input configuration for further processing. For more information on defining commands run 'cue help cmd' or go to cuelang.org/pkg/cmd. For more information on writing CUE configuration files see cuelang.org. Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module help Help about any command import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -h, --help help for cue -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. > cmp stdout stdout.golden > cue --help [stdout] cue evaluates CUE files, an extension of JSON, and sends them to user-defined commands for processing. Commands are defined in CUE as follows: import "tool/exec" command: deploy: { exec.Run cmd: "kubectl" args: [ "-f", "deploy" ] in: json.Encode(userValue) // encode the emitted configuration. } cue can also combine the results of http or grpc request with the input configuration for further processing. For more information on defining commands run 'cue help cmd' or go to cuelang.org/pkg/cmd. For more information on writing CUE configuration files see cuelang.org. Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module help Help about any command import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -h, --help help for cue -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. > cmp stdout stdout.golden > cue -h [stdout] cue evaluates CUE files, an extension of JSON, and sends them to user-defined commands for processing. Commands are defined in CUE as follows: import "tool/exec" command: deploy: { exec.Run cmd: "kubectl" args: [ "-f", "deploy" ] in: json.Encode(userValue) // encode the emitted configuration. } cue can also combine the results of http or grpc request with the input configuration for further processing. For more information on defining commands run 'cue help cmd' or go to cuelang.org/pkg/cmd. For more information on writing CUE configuration files see cuelang.org. Usage: cue [command] Available Commands: cmd run a user-defined shell command completion Generate completion script def print consolidated definitions eval evaluate and print a configuration export output data in a standard format fix rewrite packages to latest standards fmt formats CUE configuration files get add dependencies to the current module help Help about any command import convert other formats to CUE files mod module maintenance trim remove superfluous fields version print CUE version vet validate data Flags: -E, --all-errors print all available errors -h, --help help for cue -i, --ignore proceed in the presence of errors -s, --simplify simplify output --strict report errors for lossy mappings --trace trace computation -v, --verbose print information about progress Additional help topics: cue commands user-defined commands cue filetypes supported file types and qualifiers cue flags common flags for composing packages cue injection inject files or values into specific fields for a build cue inputs package list, patterns, and files Use "cue [command] --help" for more information about a command. > cmp stdout stdout.golden PASS === CONT TestScript/cmd_textproto === CONT TestScript/inject testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval test.cue -t env=prod [stdout] environment: "prod" > cmp stdout expect-stdout > cue eval vars.cue -T [stdout] base: "script-inject" > cmp stdout expect-stdout-vars > cue eval vars.cue -T -t dir=xxx [stdout] base: "xxx" > cmp stdout expect-stdout-override > cue eval vars.cue [stdout] import "path" base: path.Base(_dir, _os) > cmp stdout expect-stdout-novars > ! cue eval -T err.cue [stderr] tag variable 'userz' not found [exit status 1] > cmp stderr expect-stderr-err > cue cmd user vars.cue vars_tool.cue [stdout] script-inject > cmp stdout expect-stdout-tool # TODO: report errors for invalid tags? (0.000s) PASS === CONT TestScript/cmd_after === CONT TestScript/fmt_multi testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue fmt . > cmp x.cue out/x.cue > cmp x.cue out/star-cue > cmp y.cue out/y-cue > cmp yb.cue out/yb-cue PASS === CONT TestScript/cmd_embed === CONT TestScript/def_proto testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue def policy.proto -p api -I include [stdout] package api import "time" // Attributes defines attributes. #Attributes: { // A map of attribute name to its value. attributes?: { [string]: #AttributeValue } @protobuf(1,map[string]AttributeValue) // Specifies one attribute value with different type. #AttributeValue: {} | { stringValue: string @protobuf(2,string,name=string_value) } | { int64Value: int64 @protobuf(3,int64,name=int64_value) } | { doubleValue: float64 @protobuf(4,double,name=double_value) } | { boolValue: bool @protobuf(5,bool,name=bool_value) } | { bytesValue: bytes @protobuf(6,bytes,name=bytes_value) } | { timestampValue: time.Time @protobuf(7,google.protobuf.Timestamp,name=timestamp_value) } | { // Used for values of type STRING_MAP stringMapValue: #StringMap @protobuf(9,StringMap,name=string_map_value) } // Defines a string map. #StringMap: { // Holds a set of name/value pairs. entries?: { [string]: string } @protobuf(1,map[string]string) } } > cmp stdout expect-stdout PASS === CONT TestScript/issue322 === CONT TestScript/fmt_err testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # ignore certain errors for cue fmt (1.435s) > cue fmt x.cue # Issue #644 (2.453s) > cue fmt ./... > cmp x.cue out/x_cue PASS === CONT TestScript/issue425 === CONT TestScript/def_basic testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue def [stdout] // foo package foo #A: { // a is an integer a: int b: c: int } > cmp stdout expect-stdout1 > cue def data.cue [stdout] 3 > cmp stdout expect-stdout2 PASS === CONT TestScript/issue398 === CONT TestScript/def_force testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Verify that def with --force works # First time should simply succeed (1.433s) > cue def -o test.cue file.cue > cmp test.cue file.cue # Second time will fail without --force (0.911s) > ! cue def -o test.cue file.cue [stderr] error writing "test.cue": file already exists [exit status 1] > stderr 'error writing "test.cue": file already exists' # Second time with --force should succeed (1.585s) > cue def --force -o test.cue file.cue > cmp test.cue file.cue PASS === CONT TestScript/issue324 === CONT TestScript/issue322 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet [stderr] imported and not used: "strings": ./x.cue:2:8 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/cmd_github === CONT TestScript/issue425 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue vet list.cue list.json > cmp stdout expect-stdout PASS === CONT TestScript/cmd_inferred === CONT TestScript/eval_concrete testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval -c -a [stdout] message: "Hello World!" > cmp stdout eval_conc.cue > cue eval --out yaml [stdout] message: Hello World! > cmp stdout eval_conc.yaml PASS === CONT TestScript/cmd_import === CONT TestScript/help_doc testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Print the data for the current package a yaml. (1.784s) > cue export --out=yaml [stdout] name: foo > cmp stdout stdout-export # Print the string value of the name field as a string. (2.422s) > cue export -e name --out=text [stdout] foo > cmp stdout expect-stdout # Write the string value of the name field to a txt file. (2.602s) > cue export -e name -o=foo.txt > cmp stdout-foo foo.txt # Write the string value of the name field to a file foo. (2.125s) > cue export -e name -o=text:foo > cmp stdout-foo foo # Interpret bar.cue and foo.yaml as OpenAPI data. # cue def openapi: bar.cue foo.yaml # Write a CUE package as openapi encoded as YAML, using # an alternate file extension. # cue def -o openapi+yaml:foo.openapi (0.000s) PASS === CONT TestScript/cmd_http === CONT TestScript/issue324 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet foo.cue [stderr] some instances are incomplete; use the -c flag to show errors or suppress this message [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/cmd_echo === CONT TestScript/cmd_textproto testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval topschema.cue foo.textproto [stdout] a: 4 b: [1, 2, 3, 4, 5] c: "foo" > cmp stdout out/topfoo.textproto > cue eval -d '#X' schema.cue foo.textproto [stdout] a: 4 b: [1, 2, 3, 4, 5] c: "foo" > cmp stdout out/foo.textproto > ! cue eval -d '#X' schema.cue foo.textproto -l c [stderr] cannot combine --schema flag with flag "path", "list", or "files" [exit status 1] > cmp stderr out/stderr3 PASS === CONT TestScript/eval_import === CONT TestScript/cmd_inferred testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd dump [stdout] a: 1 b: kind: foo name: bar > cmp stdout expect-stdout PASS === CONT TestScript/export === CONT TestScript/cmd_after testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd after [stdout] run also run true SUCCESS > cmp stdout expect-stdout PASS === CONT TestScript/eval_tool === CONT TestScript/cmd_import testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd pkg [stderr] command.pkg.t: reference "cli" not found: ./task_tool.cue:6:5 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/eval_tags === CONT TestScript/issue398 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval ./pkg:foo [stdout] z: 3 y: 2 x: 1 > cmp stdout expect-stdout PASS === CONT TestScript/eval_stdin === CONT TestScript/eval_import testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval ./in.cue [stdout] import "list" def: { #types: list.MinItems(1) } > cmp stdout expect-stdout PASS === CONT TestScript/eval_resolve === CONT TestScript/cmd_embed testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Issue #281 # Verify that we get the expected exported output. (2.107s) > cue export [stdout] { "command": { "hello": { "task": { "hello": { "$id": "tool/cli.Print", "text": "hello, world" } } }, "hello1": { "task": { "hello": { "$id": "tool/cli.Print", "text": "hello, world" } } } } } > cmp stdout expect/concrete.json # Using the explicitly written command works OK. (1.910s) > cue hello1 [stdout] hello, world > stdout 'hello, world' # Using the command that's defined externally fails. (1.360s) > cue hello [stdout] hello, world > stdout 'hello, world' PASS === CONT TestScript/eval_rec === CONT TestScript/cmd_http testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd http [stdout] {"data":"I'll be back!","when":"now"} > cmp stdout cmd_http.out PASS === CONT TestScript/eval_newline === CONT TestScript/eval_stdin testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > stdin stdin.cue > cue eval t.cue - [stdout] foo: 3 bar: 3 > cmp stdout expect-stdout PASS === CONT TestScript/eval_loaderr === CONT TestScript/eval_tool testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval [stdout] message: "Hello world!" > cmp stdout expect-stdout PASS === CONT TestScript/export_yaml === CONT TestScript/export testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue export ./hello [stdout] { "$type": "demo", "message": "Hello World!" } > cmp stdout expect-stdout PASS === CONT TestScript/fix_files cmd.go:360: No longer supported, but keeping around until for sure. testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > skip 'No longer supported, but keeping around until for sure.' === CONT TestScript/fix cmd.go:360: No longer supported, but keeping around until for sure. testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > skip 'No longer supported, but keeping around until for sure.' === CONT TestScript/file_forms === CONT TestScript/eval_tags testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval -t env=staging -t name=bar [stdout] var: { env: "staging" name: "bar" } > cmp stdout expect-stdout PASS === CONT TestScript/eval_flags === CONT TestScript/eval_rec testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval ./rec.cue -O [stdout] Foo: { foo?: Foo bar: string baz: bar + "2" } foo: { foo: { foo?: Foo bar: "barNested" baz: "barNested2" } bar: "barParent" baz: "barParent2" } > cmp stdout expect-stdout PASS === CONT TestScript/eval_hiddenfail === CONT TestScript/eval_loaderr testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval non-existing . [stderr] cannot find package "non-existing" [exit status 1] > ! stdout . > cmp stderr expect-stderr PASS === CONT TestScript/eval_hidden === CONT TestScript/cmd_echo testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd echo [stdout] Hello World! > stdout 'Hello World!' > cue cmd echohidden [stdout] Hello World! > stdout 'Hello World!' PASS === CONT TestScript/eval_force === CONT TestScript/def_jsonschema testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue def jsonschema: schema.json -p schema -l '#Person:' [stdout] package schema import "strings" #Person: { // Person @jsonschema(schema="http://json-schema.org/draft-07/schema#") @jsonschema(id="https://example.com/person.schema.json") // The person's first name. firstName?: string // The person's last name. lastName?: strings.MinRunes(1) // Age in years which must be equal to or greater than zero. age?: >=0 & int ... } > cmp stdout expect-stdout # auto mode (7.179s) > cue def schema.json -p schema -l '#Person:' [stdout] package schema import "strings" #Person: { // Person @jsonschema(schema="http://json-schema.org/draft-07/schema#") @jsonschema(id="https://example.com/person.schema.json") // The person's first name. firstName?: string // The person's last name. lastName?: strings.MinRunes(1) // Age in years which must be equal to or greater than zero. age?: >=0 & int ... } > cmp stdout expect-stdout > cue def jsonschema: bad.json [stdout] number > ! cue def jsonschema: bad.json --strict [stderr] unsupported constraint "foo": ./bad.json:3:3 [exit status 1] > cmp stderr expect-stderr > ! cue export data.yaml schema.json [stderr] age: conflicting values "twenty" and int (mismatched types string and int): ./data.yaml:1:7 ./schema.json:18:7 [exit status 1] > cmp stderr expect-stderr2 > ! cue vet data.yaml schema.json [stderr] age: conflicting values "twenty" and int (mismatched types string and int): ./data.yaml:1:7 ./schema.json:18:7 [exit status 1] > cmp stderr expect-stderr3 PASS === CONT TestScript/cmd_dep === CONT TestScript/export_yaml testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue export --out yaml ./hello [stdout] message: Hello World! test: {} > cmp stdout expect-stdout PASS === CONT TestScript/cmd_dep_cycle === CONT TestScript/eval_hiddenfail testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval [stderr] build constraints exclude all CUE files in .: .foo.cue: filename starts with a '.' [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/cmd_notool2 === CONT TestScript/eval_newline testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval ./data.cue [stdout] 3 > cmp stdout expect-stdout > cue eval ./data.cue -o out.cue > cmp out.cue expect-out.cue PASS === CONT TestScript/cmd_stdin === CONT TestScript/eval_hidden testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval .foo.cue [stdout] a: 42 > cmp stdout expect-stdout PASS === CONT TestScript/cmd_run_list === CONT TestScript/cmd_notool2 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue notool [stderr] command "notool" is not defined Ensure commands are defined in a "_tool.cue" file. Run 'cue help' to show available commands. [exit status 1] > ! stdout . > cmp stderr cmd_baddisplay.out PASS === CONT TestScript/cmd_run === CONT TestScript/cmd_dep testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd do [stdout] {"b":"cue"} > cmp stdout expect-stdout PASS === CONT TestScript/cmd_ref === CONT TestScript/cmd_stdin testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > stdin stdin.txt > cue cmd echo [stdout] Hello World! > cmp stdout expect-stdout PASS === CONT TestScript/cmd_print === CONT TestScript/cmd_run_list testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd run_list [stdout] Hello world! > stdout 'Hello world!' PASS === CONT TestScript/issue312 === CONT TestScript/file_forms testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval data: foo.cue [stdout] a: 4 b: { c: 1 d: 2 } > cmp stdout expect-data-foo > ! cue eval data: bar.cue [stderr] references not allowed in data mode: ./bar.cue:3:8 [exit status 1] > cmp stderr expect-data-bar > cue eval graph: bar.cue [stdout] a: 4 b: { c: 4 } > cmp stdout expect-graph-bar PASS === CONT TestScript/issue315 === CONT TestScript/eval_resolve testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Issue #736 # # references should never resolve to files of an # anonymous package (no package or package _). (4.386s) > ! cue eval data.yaml check.cue [stderr] #map: reference "nodes" not found: ./check.cue:3:17 [exit status 1] > cmp stderr out-stderr > ! cue eval none.cue check.cue [stderr] #map: reference "nodes" not found: ./check.cue:3:17 [exit status 1] > cmp stderr out-stderr > ! cue eval anon.cue check.cue [stderr] #map: reference "nodes" not found: ./check.cue:3:17 [exit status 1] > cmp stderr out-stderr # TODO: allow this for now. Files without a package clause should not resolve # across other files. (1.219s) > cue eval package.cue check.cue [stdout] nodes: [{ name: "foo" childs: ["bar", "baz"] }, { name: "bar" parent: "foo" }, { name: "baz" parent: "foo" }] #map: { foo: { name: "foo" childs: ["bar", "baz"] } bar: { name: "bar" parent: "foo" } baz: { name: "baz" parent: "foo" } } PASS === CONT TestScript/cmd_env === CONT TestScript/cmd_run testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd run [stdout] Hello world! > stdout 'Hello world!' PASS === CONT TestScript/cmd_closed === CONT TestScript/issue315 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet -c file.cue [stderr] invalid interpolation: non-concrete value string (type string): ./file.cue:12:1 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/cmd_ref testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd ref [stdout] hello > cmp stdout expect-stdout PASS === CONT TestScript/vet_altdata === CONT TestScript/vet_path === CONT TestScript/eval_force testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Verify that eval with --force works # First time should simply succeed (1.290s) > cue eval -o eval.cue file.cue > cmp eval.cue eval.golden # Second time will fail without --force (1.229s) > ! cue eval -o eval.cue file.cue [stderr] error writing "eval.cue": file already exists [exit status 1] > stderr 'error writing "eval.cue": file already exists' # Second time with --force should succeed (1.667s) > cue eval --force -o eval.cue file.cue > cmp eval.cue eval.golden PASS === CONT TestScript/vet_opt === CONT TestScript/def_openapi testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue def foo.cue -o openapi+cue:out.cue > cmp out.cue expect-out.cue > cue def openapi+cue: expect-cue-out -o - [stdout] info: { title: *"Some clever title." | string version: *"v1" | string } #Bar: { foo: #Foo ... } #Foo: { a: int b: uint & <10 ... } > cue def foo.cue -o openapi:- [stdout] { "openapi": "3.0.0", "info": { "title": "Some clever title.", "version": "v1" }, "paths": {}, "components": { "schemas": { "Bar": { "type": "object", "required": [ "foo" ], "properties": { "foo": { "$ref": "#/components/schemas/Foo" } } }, "Foo": { "type": "object", "required": [ "a", "b" ], "properties": { "a": { "type": "integer" }, "b": { "type": "integer", "minimum": 0, "maximum": 10, "exclusiveMaximum": true } } } } } } > cmp stdout expect-json-out > cue def foo.cue -o openapi+cue:- [stdout] openapi: "3.0.0" info: { title: "Some clever title." version: "v1" } paths: {} components: schemas: { Bar: { type: "object" required: ["foo"] properties: foo: $ref: "#/components/schemas/Foo" } Foo: { type: "object" required: ["a", "b"] properties: { a: type: "integer" b: { type: "integer" minimum: 0 maximum: 10 exclusiveMaximum: true } } } } > cmp stdout expect-cue-out > cue def foo.cue -o openapi+yaml:- [stdout] openapi: 3.0.0 info: title: Some clever title. version: v1 paths: {} components: schemas: Bar: type: object required: - foo properties: foo: $ref: '#/components/schemas/Foo' Foo: type: object required: - a - b properties: a: type: integer b: type: integer minimum: 0 maximum: 10 exclusiveMaximum: true > cmp stdout expect-yaml-out > cue def -p foo openapi: openapi.json [stdout] // My OpenAPI package foo info: { title: *"My OpenAPI" | string version: *"v1alpha1" | string } #Bar: { foo: #Foo ... } #Foo: { a: int b: uint & <10 ... } > cmp stdout expect-cue # auto mode (1.504s) > cue def -p foo openapi.json [stdout] // My OpenAPI package foo info: { title: *"My OpenAPI" | string version: *"v1alpha1" | string } #Bar: { foo: #Foo ... } #Foo: { a: int b: uint & <10 ... } > cmp stdout expect-cue # cue to openapi (1.725s) > cue def openapi+cue: expect-cue-out -o - [stdout] info: { title: *"Some clever title." | string version: *"v1" | string } #Bar: { foo: #Foo ... } #Foo: { a: int b: uint & <10 ... } > cmp stdout expect-cue2 # combine (1.798s) > cue def -p foo openapi.json openapi2.json [stdout] // My OpenAPI // My OpenAPI2 package foo info: { title: (*"My OpenAPI" | string) & (*"My OpenAPI2" | string) version: (*"v1alpha1" | string) & (*"v1alpha1" | string) } #Bar: { foo: #Foo ... } #Foo: { a: int b: uint & <10 ... } #Baz: { a: int b: uint & <10 ... } > cmp stdout expect-cue3 PASS === CONT TestScript/vet_file === CONT TestScript/cmd_env testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > env TESTNUM=10 > env MYTEXT=World > cue cmd env [stdout] Hello World! > cmp stdout cmd_env.out PASS === CONT TestScript/vet_expr === CONT TestScript/eval_flags testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Issue #969 (6.369s) > ! cue eval test.json -n ".+\.cue" [stderr] use of -n/--name flag without a directory [exit status 1] > cmp stderr expect-stderr1 > ! cue eval test.json -d '#D2' [stderr] -d/--schema flag specified without a schema [exit status 1] > cmp stderr expect-stderr2 > ! cue eval test.json -n ".+\.cue" -d '#D2' [stderr] use of -n/--name flag without a directory [exit status 1] > cmp stderr expect-stderr3 > ! cue eval test.json vector.cue -d '#D1' [stderr] reference "#D1" not found: --schema:1:1 [exit status 1] > cmp stderr expect-stderr4 > ! cue eval test.json vector.cue -d '#D2' [stderr] X: conflicting values 1 and float (mismatched types int and float): ./test.json:2:8 ./vector.cue:4:8 [exit status 1] > cmp stderr expect-stderr5 PASS === CONT TestScript/vet_embed === CONT TestScript/cmd_closed testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd run PASS === CONT TestScript/vet_data === CONT TestScript/vet_opt testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue vet -c vet.cue > cmp stdout expect-stdout PASS === CONT TestScript/cmd_deppkg === CONT TestScript/cmd_dep_cycle testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd cycle [stderr] cyclic task dependency: task command.cycle.t1 refers to task command.cycle.t2 refers to task command.cycle.t1: ./after_tool.cue:18:2 ./after_tool.cue:19:2 [exit status 1] > cmp stderr expect-stderr1 > ! cue cmd aftercycle [stderr] command.aftercycle.t1.$after.$after: structural cycle [exit status 1] > cmp stderr expect-stderr2 > cue cmd interlockedTasks [stdout] v v > cmp stdout interlocked-stdout > cmp stderr expect-stderr3 PASS === CONT TestScript/vet_concrete === CONT TestScript/vet_path testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet -l 'strings.ToLower(kind)' -l name services.jsonl services.cue [stderr] deployment.Booster.name: invalid value "Booster" (out of bound !~"^[A-Z]"): ./services.cue:1:29 ./services.jsonl:3:13 service."Supplement\nfoo".name: invalid value "Supplement\nfoo" (out of bound !~"^[A-Z]"): ./services.cue:2:26 ./services.jsonl:3:13 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/issue304 === CONT TestScript/cmd_print testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd print [stdout] t.1. .t.2. > cmp stdout expect-stdout PASS === CONT TestScript/export_list === CONT TestScript/vet_expr testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet -d '#File' vet.cue data.yaml [stderr] translations.hello.lang: incomplete value string field not allowed: skip: ./data.yaml:20:1 ./vet.cue:1:1 ./vet.cue:1:8 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/export_select === CONT TestScript/issue312 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue export x.cue -out cue [stderr] no encoding specified for file "ut" [exit status 1] > cmp stderr expect-stderr > ! cue export -out cue [stderr] no encoding specified for file "ut" [exit status 1] > cmp stderr expect-stderr > ! cue export -out x.cue [stderr] no encoding specified for file "ut" [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/export_force === CONT TestScript/vet_altdata testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue vet schema.cue json: foo.data > ! stderr . > cue export schema.cue json: foo.data [stdout] { "a": "b", "c": "d" } > cmp stdout export-stdout PASS === CONT TestScript/cmd_notool === CONT TestScript/vet_concrete testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet -c [stderr] b.idx: invalid non-ground value string (must be concrete string) b.str: incomplete value string sum: incomplete value 1 | 2 [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/toolonly === CONT TestScript/issue304 testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue def -e '#Foo' x.cue [stdout] _#def _#def: { x: int body?: { a: int b?: string } } > cmp stdout expect-stdout PASS === CONT TestScript/vet === CONT TestScript/get_go_unresolvable_package testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we get expected error when we ask cue get go to get # a Go package that cannot be resolved. # Ensure that we don't automatically add the missing dependency pre Go 1.16 (18.908s) > [!go1.16] env GOFLAGS=-mod=readonly > ! cue get go k8s.io/api/apps/v1 [stderr] could not load Go packages: k8s.io/api/apps/v1: -: no required module provides package k8s.io/api/apps/v1; to add it: go get k8s.io/api/apps/v1 [exit status 1] > [go1.16] stderr '\Qno required module provides package k8s.io/api/apps/v1' > [go1.14] [!go1.16] stderr '\Qcannot find module providing package k8s.io/api/apps/v1: import lookup disabled by -mod=readonly' PASS === CONT TestScript/trim_force === CONT TestScript/export_list testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue export -l "\(strings.ToLower(kind))" --list import/services.jsonl [stdout] { "service": [ { "kind": "Service", "name": "booster" }, { "kind": "Service", "name": "supplement\nfoo", "json": "[1, 2]" } ], "deployment": [ { "kind": "Deployment", "name": "booster", "replicas": 1 } ] } > cmp stdout expect-stdout PASS === CONT TestScript/trim === CONT TestScript/cmd_deppkg testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd foo [stdout] test sub > cmp stdout cue_cmd_foo_both.golden PASS === CONT TestScript/export_expr === CONT TestScript/vet_file testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet ./vet.cue ./data.yaml [stderr] translations.hello.lang: incomplete value string translations.hello.lang: conflicting values false and string (mismatched types bool and string): ./data.yaml:13:11 ./vet.cue:3:25 ./vet.cue:3:31 [exit status 1] > cmp stderr expect-stderr > ! cue vet . ./data.yaml [stderr] translations.hello.lang: incomplete value string translations.hello.lang: conflicting values false and string (mismatched types bool and string): ./data.yaml:13:11 ./vet.cue:3:25 ./vet.cue:3:31 [exit status 1] > cmp stderr expect-stderr2 PASS === CONT TestScript/cmd_jsonpb === CONT TestScript/cmd_notool testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd notool [stderr] cmd must be run as one of its subcommands: unknown subcommand "notool" Ensure commands are defined in a "_tool.cue" file. Run 'cue help cmd' for known subcommands. [exit status 1] > ! stdout . > cmp stderr cmd_baddisplay.out PASS === CONT TestScript/eval_errs === CONT TestScript/vet_embed testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Embedding at the file level should still close the package and validate # correctly against files from other packages without first merging these # files, thereby effectively embedding them and averting the closed check. # Issue #743 (3.114s) > ! cue vet schema.cue foo.yaml [stderr] field not allowed: c: ./foo.yaml:2:2 ./schema.cue:1:1 ./schema.cue:3:7 ./schema.cue:7:1 [exit status 1] > cmp stderr expect-foo > ! cue vet schema.cue stream.yaml [stderr] field not allowed: d: ./schema.cue:1:1 ./schema.cue:3:7 ./schema.cue:7:1 ./stream.yaml:2:2 [exit status 1] > cmp stderr expect-stream PASS === CONT TestScript/eval_expr === CONT TestScript/export_select testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue export .:foo example.org/bar:baz [stdout] { "a": 1 } { "c": 1 } > cmp stdout expect-stdout PASS === CONT TestScript/cmd_filetypes === CONT TestScript/toolonly testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd foo [stdout] foo > cmp stdout expect-stdout PASS === CONT TestScript/cmd_func === CONT TestScript/vet_data testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet schema.cue data.yaml [stderr] languages.1.name: invalid value "dutch" (out of bound =~"^\\p{Lu}"): ./schema.cue:3:8 ./data.yaml:5:12 [exit status 1] > cmp stderr vet-stderr > ! cue export schema.cue data.yaml [stderr] languages.1.name: invalid value "dutch" (out of bound =~"^\\p{Lu}"): ./schema.cue:3:8 ./data.yaml:5:12 [exit status 1] > cmp stderr export-stderr PASS === CONT TestScript/eval_e_hidden === CONT TestScript/vet testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue vet [stderr] some instances are incomplete; use the -c flag to show errors or suppress this message [exit status 1] > cmp stderr expect-stderr PASS === CONT TestScript/cmd_errpos === CONT TestScript/export_expr testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue export data.cue -e a+c -e d.e.f --out yaml [stdout] 4 --- jam > cmp stdout expect-stdout PASS === CONT TestScript/merge_interaction === CONT TestScript/trim testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue trim -o - ./trim [stdout] package trim foo: [string]: { _value: string a: 4 b: string d: 8 e: "foo" f: ">> \( _value) <<" n: 5 list: ["foo", 8.0] struct: {a: 3.0} sList: [{a: 8, b: string}, {a: 9, b: *"foo" | string}] rList: [{a: "a"}] rcList: [{a: "a", c: b}] t: [string]: { x: >=0 & <=5 } } foo: bar: { _value: "here" b: "foo" c: 45 sList: [{b: "foo"}, {}] } foo: baz: {} foo: multipath: { t: [string]: { // Combined with the other constraints, we know the value must be 5 and // thus the entry below can be eliminated. x: >=5 & <=8 & int } t: u: { } } group: { for k, v in foo { comp: "\(k)": v } comp: bar: { aa: 8 // new value } comp: baz: {} // TODO: remove: implied by comprehension above } > cmp stdout expect-stdout PASS === CONT TestScript/no_read_stdin === CONT TestScript/eval_errs testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval errs.cue [stderr] bar: 2 errors in empty disjunction: bar.a: conflicting values "str" and int (mismatched types string and int): ./errs.cue:5:10 ./errs.cue:6:6 ./errs.cue:6:16 bar.b: conflicting values 2 and string (mismatched types int and string): ./errs.cue:5:21 ./errs.cue:6:6 ./errs.cue:6:26 x.q: conflicting values "goodbye" and "hello": ./errs.cue:1:4 ./errs.cue:2:4 ./errs.cue:3:8 ./errs.cue:3:14 [exit status 1] > cmp stderr expect-stderr > cmp stdout expect-stdout PASS === CONT TestScript/eval_e === CONT TestScript/export_force testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Verify that export with --force works # First time should simply succeed (1.426s) > cue export -o test.yml file.cue > cmp test.yml test.yml.golden # Second time will fail without --force (1.067s) > ! cue export -o test.yml file.cue [stderr] error writing "test.yml": file already exists [exit status 1] > stderr 'error writing "test.yml": file already exists' # Second time with --force should succeed (0.942s) > cue export --force -o test.yml file.cue > cmp test.yml test.yml.golden PASS === CONT TestScript/load_pkg === CONT TestScript/cmd_filetypes testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval cue+date: x.cue [stderr] unknown filetype date [exit status 1] > stderr 'unknown filetype date' PASS === CONT TestScript/cmd_errcode === CONT TestScript/eval_expr testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval -c -e b.a.b -e b.idx [stdout] // b.a.b 4 [stderr] // b.idx b.idx: invalid non-ground value string (must be concrete string) [exit status 1] > cmp stderr expect-stderr > cmp stdout expect-stdout PASS === CONT TestScript/no_read_stdin testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # try to trick cue reading from a perpetually open stdin by placing a file # named '-' in the current directory. (1.419s) > ! cue eval [stderr] no CUE files in . [exit status 1] > stdin - > cmp stderr expect-stderr PASS === CONT TestScript/cmd_func testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Issue #578 (1.999s) > cue dump ./... [stdout] "{\"y\":2}" > cmp stdout stdout-expect PASS === CONT TestScript/get_go_non_local testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that cue get go works when used without the --local flag # cue get go currently appear to act like a wrapper around go get. # But this is going to change: "cue get go" will be renamed "cue import go". # When that change happens, cue import go will assume that all # required dependencies are present, and fail otherwise. (2.371s) > go get example.com/blah@v1.0.0 [stderr] go: downloading example.com/blah v1.0.0 go get: added example.com/blah v1.0.0 > go mod tidy # cue get go (19.795s) > cue get go example.com/blah > cmp cue.mod/gen/example.com/blah/blah_go_gen.cue cue.mod/gen/example.com/blah/blah_go_gen.cue.golden > cmp cue.mod/gen/example.com/blah/blah_gen.cue cue.mod/gen/example.com/blah/blah_gen.cue.golden # Verify dependencies are as expected (0.000s) > cmp go.mod go.mod.golden PASS === CONT TestScript/trim_force testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Verify that trim with --force works # First time should simply succeed (1.119s) > cue trim -o test.cue file.cue > cmp test.cue file.cue # Second time will fail without --force (1.131s) > ! cue trim -o test.cue file.cue [stderr] error writing "test.cue": file already exists [exit status 1] > stderr 'error writing "test.cue": file already exists' # Second time with --force should succeed (1.391s) > cue trim --force -o test.cue file.cue > cmp test.cue file.cue PASS === CONT TestScript/cmd_errpos testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd prompter [stderr] command.prompter.contents: invalid bytes argument: non-concrete value string: ./task_tool.cue:9:10 ./task_tool.cue:17:3 tool/file:11:3 command.prompter.filename: invalid string argument: non-concrete value string: ./task_tool.cue:9:10 tool/file:9:3 tool/file:9:16 [exit status 1] > cmp stderr expect-stderr # Issue #479 (0.000s) PASS === CONT TestScript/merge_interaction testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue cmd dump [stdout] spec: {} > cmp stdout expect-stdout PASS === CONT TestScript/cmd_errcode testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue cmd errcode [stderr] task failed: command "ls --badflags" failed: exit status 2 [exit status 1] > ! stdout . > stderr '^task failed: command "ls --badflags" failed: exit status [12]$' PASS === CONT TestScript/cmd_jsonpb testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > cue eval schema.cue json+pb: data.json [stdout] a: 10 b: 20 c: 30 d: 1.2 s: "SGVsbG8sIOS4lueVjA==" t: 'Hello, 世界' > cmp stdout out/data1 > cue eval schemaflag.cue -d '#X' json+pb: data.json [stdout] a: 10 b: 20 c: 30 d: 1.2 s: "SGVsbG8sIOS4lueVjA==" t: 'Hello, 世界' > cmp stdout out/data1 > ! cue eval schema.cue json+pb: data-err.json [stderr] t: failed to decode base64: illegal base64 data at input byte 15: ./data-err.json:1:40 [exit status 1] > cmp stderr out/data-err > cue eval .:nested yaml+pb: stream.yaml -l kind [stdout] A: { kind: "A" a: 10 b: 'Hello, 世界' } B: { kind: "B" a: 10 s: "SGVsbG8sIOS4lueVjA==" } > cmp stdout out/stream PASS === CONT TestScript/eval_e_hidden testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Issue #904 (5.882s) > cue eval -e _a [stdout] 34 > stdout '34' > cue eval -e _a dep.cue [stdout] 34 > stdout '34' > cue eval -e _a tst.cue [stdout] 34 > stdout '34' > cue eval -H [stdout] _a: 34 > stdout '_a: 34' PASS === CONT TestScript/eval_e testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* > ! cue eval -e nonExist [stderr] reference "nonExist" not found: --expression:1:1 [exit status 1] > cmp stderr expect/nonExist/stderr > cmp stdout expect/nonExist/stdout # Issue #550: ignore incomplete error in different package (1.643s) > cue eval -e incomplete [stdout] > cmp stderr expect/incomplete/stderr > cmp stdout expect/incomplete/stdout # Issue #384 (0.896s) > ! cue eval foo.bar [stderr] unknown file extension .bar [exit status 1] > cmp stderr expect/foobar/stderr # Issue #999 (1.122s) > cue export --out text -e 'yaml.MarshalStream(X)' issue999/x.cue [stdout] a: 1 --- b: 2 > cmp stdout expect/issue999/stdout PASS === CONT TestScript/load_pkg testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # mixing two anonymous packages (1.659s) > cue eval t.cue data.cue [stdout] foo: 3 bar: 3 > cmp stdout stdout-t # allow mixing named with anonymous package in files mode (1.193s) > cue eval kube.cue data.cue [stdout] foo: 3 bar: 3 > cmp stdout stdout-files # allow mixing named with anonymous package in files mode (1.270s) > cue eval kube.cue data.cue t.cue [stdout] foo: 3 bar: 3 > cmp stdout stdout-files # don't pick up the unnamed package in directory mode (1.535s) > cue eval . [stdout] foo: int bar: 3 > cmp stdout stdout-pkg # don't allow mixing two differently named packages (0.775s) > ! cue eval kube.cue foo/kube2.cue [stderr] found packages "kube" (kube.cue) and kube2 (kube2.cue) in "$WORK" [exit status 1] PASS === CONT TestScript/get_go_type_errors testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that we get expected results in the presence of type # check errors. In this mode, cue get go proceeds on a best-efforts # basis. (34.829s) > cue get go --local > cmp blah_go_gen.cue blah.cue.golden PASS === CONT TestScript/get_go_local testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # Test that a basic get go works using --local # All the things (20.547s) > cue get go --local > cmp blah_go_gen.cue all.cue.golden # Verify dependencies did not change (0.000s) > cmp go.mod go.mod.golden # Use an alternative package name (14.865s) > cue get go --local -p other > cmp blah_go_gen.cue other.cue.golden # Verify dependencies did not change (0.000s) > cmp go.mod go.mod.golden PASS === CONT TestScript/cmd_github testscript.go:397: WORK=$WORK PATH=/tmp/testscript-main2152988303/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl HOME=$WORK/.user-home TMPDIR=$WORK/.tmp devnull=/dev/null /=/ :=: $=$ TESTSCRIPT_COVER_DIR= exe= GOPATH=$WORK/gopath CCACHE_DISABLE=1 GOARCH=riscv64 GOOS=linux GOROOT=/usr/lib/go GOCACHE=/build/.cache/go-build GOPROXY=http://127.0.0.1:36381/mod goversion=1.17 GONOSUMDB=* # A txtar test version of the of the go generate workflow that wraps # the internal/ci genworkflows CUE command. # # Note: all the non-golden files below are updated automatically by # the internal/ci updateTxtarTests CUE command (with the exception # of the cue.mod/module.cue file). # TODO: drop cd when we solve cuelang.org/issue/708 (53.190s) > cd internal/ci $WORK/internal/ci > cue cmd genworkflows # TODO: drop cd when we solve cuelang.org/issue/708 (0.001s) > cd ../../ $WORK > cmp .github/workflows/mirror.yml .github/workflows/mirror.yml.golden > cmp .github/workflows/new_version_triggers.yml .github/workflows/new_version_triggers.yml.golden > cmp .github/workflows/release.yml .github/workflows/release.yml.golden > cmp .github/workflows/repository_dispatch.yml .github/workflows/repository_dispatch.yml.golden > cmp .github/workflows/test.yml .github/workflows/test.yml.golden > cmp .github/workflows/tip_triggers.yml .github/workflows/tip_triggers.yml.golden PASS panic: test timed out after 10m0s goroutine 1535 [running]: testing.(*M).startAlarm.func1() testing/testing.go:1788 +0xe0 created by time.goFunc time/sleep.go:180 +0x40 goroutine 1 [chan receive, 9 minutes]: testing.(*T).Run(0xc0003609c0, {0x4000a392f1, 0xa}, 0x4000c71b30) testing/testing.go:1307 +0x3a8 testing.runTests.func1(0xc0003609c0) testing/testing.go:1598 +0x84 testing.tRunner(0xc0003609c0, 0xc00021f920) testing/testing.go:1259 +0xf0 testing.runTests(0xc00033ccd8, {0x40010d2440, 0x4, 0x4}, {0xc0716f2c5a975f0e, 0x8bc35557b8, 0x400113ade0}) testing/testing.go:1596 +0x434 testing.(*M).Run(0xc000370600) testing/testing.go:1504 +0x574 github.com/rogpeppe/go-internal/testscript.RunMain({0x4000c7db40, 0xc000370600}, 0xc00021fdd8) github.com/rogpeppe/go-internal@v1.8.0/testscript/exe.go:126 +0x9e4 cuelang.org/go/cmd/cue/cmd.TestMain(0xc000370600) cuelang.org/go/cmd/cue/cmd/script_test.go:179 +0xd8 main.main() _testmain.go:51 +0x17c goroutine 7 [chan receive]: github.com/golang/glog.(*loggingT).flushDaemon(0x400113b120) github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:882 +0x80 created by github.com/golang/glog.init.0 github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:410 +0x2a4 goroutine 469 [chan receive, 9 minutes]: testing.tRunner.func1(0xc00052c680) testing/testing.go:1225 +0x420 testing.tRunner(0xc00052c680, 0x4000c71b30) testing/testing.go:1265 +0x144 created by testing.(*T).Run testing/testing.go:1306 +0x388 goroutine 329 [IO wait, 9 minutes]: internal/poll.runtime_pollWait(0x40341a17f8, 0x72) runtime/netpoll.go:234 +0xb8 internal/poll.(*pollDesc).wait(0xc00049a398, 0x72, 0x0) internal/poll/fd_poll_runtime.go:84 +0x40 internal/poll.(*pollDesc).waitRead(...) internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Accept(0xc00049a380) internal/poll/fd_unix.go:402 +0x214 net.(*netFD).accept(0xc00049a380) net/fd_unix.go:173 +0x34 net.(*TCPListener).accept(0xc000278d50) net/tcpsock_posix.go:140 +0x30 net.(*TCPListener).Accept(0xc000278d50) net/tcpsock.go:262 +0x38 net/http.(*Server).Serve(0xc000238000, {0x4000c8a690, 0xc000278d50}) net/http/server.go:3002 +0x35c github.com/rogpeppe/go-internal/goproxytest.NewServer.func1(0xc00022e000, {0x4000c8a690, 0xc000278d50}) github.com/rogpeppe/go-internal@v1.8.0/goproxytest/proxy.go:80 +0x40 created by github.com/rogpeppe/go-internal/goproxytest.NewServer github.com/rogpeppe/go-internal@v1.8.0/goproxytest/proxy.go:79 +0x3c0 goroutine 900 [syscall, 9 minutes]: syscall.Syscall6(0x5f, 0x1, 0x3e84, 0xc0007fae20, 0x1000004, 0x0, 0x0) syscall/asm_linux_riscv64.s:37 +0x10 os.(*Process).blockUntilWaitable(0xc00020d860) os/wait_waitid.go:33 +0x74 os.(*Process).wait(0xc00020d860) os/exec_unix.go:23 +0x38 os.(*Process).Wait(...) os/exec.go:132 os/exec.(*Cmd).Wait(0xc00015e840) os/exec/exec.go:507 +0x50 github.com/rogpeppe/go-internal/testscript.ctxWait.func1(0xc0006a5200, 0xc00015e840) github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:690 +0x2c created by github.com/rogpeppe/go-internal/testscript.ctxWait github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:690 +0x68 goroutine 520 [select, 9 minutes]: github.com/rogpeppe/go-internal/testscript.ctxWait({0x4000c8f5d0, 0xc0000340c8}, 0xc00015e840) github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:692 +0xdc github.com/rogpeppe/go-internal/testscript.(*TestScript).exec(0xc000018700, {0x4000a329f7, 0x3}, {0xc000324240, 0x4, 0x4}) github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:639 +0x354 github.com/rogpeppe/go-internal/testscript.(*TestScript).cmdExec(0xc000018700, 0x0, {0xc000324230, 0x5, 0x5}) github.com/rogpeppe/go-internal@v1.8.0/testscript/cmd.go:247 +0x32c github.com/rogpeppe/go-internal/testscript.RunMain.func3(0xc000018700, 0x0, {0xc00045c590, 0x4, 0x7}) github.com/rogpeppe/go-internal@v1.8.0/testscript/exe.go:123 +0x114 github.com/rogpeppe/go-internal/testscript.(*TestScript).run(0xc000018700) github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:496 +0x620 github.com/rogpeppe/go-internal/testscript.RunT.func1({0x4000c996f0, 0xc0000c6000}) github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:247 +0x274 github.com/rogpeppe/go-internal/testscript.tshim.Run.func1(0xc0000c6000) github.com/rogpeppe/go-internal@v1.8.0/testscript/testscript.go:183 +0x3c testing.tRunner(0xc0000c6000, 0xc00011ea70) testing/testing.go:1259 +0xf0 created by testing.(*T).Run testing/testing.go:1306 +0x388 goroutine 899 [IO wait, 9 minutes]: internal/poll.runtime_pollWait(0x4046bc3d80, 0x72) runtime/netpoll.go:234 +0xb8 internal/poll.(*pollDesc).wait(0xc0006a5038, 0x72, 0x1) internal/poll/fd_poll_runtime.go:84 +0x40 internal/poll.(*pollDesc).waitRead(...) internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0006a5020, {0xc000850000, 0x8000, 0x8000}) internal/poll/fd_unix.go:167 +0x20c os.(*File).read(...) os/file_posix.go:32 os.(*File).Read(0xc00050c2c0, {0xc000850000, 0x8000, 0x8000}) os/file.go:119 +0x78 io.copyBuffer({0x4000c7da40, 0xc00043ca20}, {0x4000c7d900, 0xc00050c2c0}, {0x0, 0x0, 0x0}) io/io.go:423 +0x1d0 io.Copy(...) io/io.go:382 os/exec.(*Cmd).writerDescriptor.func1() os/exec/exec.go:311 +0x5c os/exec.(*Cmd).Start.func1(0xc00015e840, 0xc00043caa0) os/exec/exec.go:441 +0x28 created by os/exec.(*Cmd).Start os/exec/exec.go:440 +0x7f8 goroutine 898 [IO wait, 9 minutes]: internal/poll.runtime_pollWait(0x404fd4b578, 0x72) runtime/netpoll.go:234 +0xb8 internal/poll.(*pollDesc).wait(0xc0006a4af8, 0x72, 0x1) internal/poll/fd_poll_runtime.go:84 +0x40 internal/poll.(*pollDesc).waitRead(...) internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0006a4ae0, {0xc000848000, 0x8000, 0x8000}) internal/poll/fd_unix.go:167 +0x20c os.(*File).read(...) os/file_posix.go:32 os.(*File).Read(0xc00050c2b0, {0xc000848000, 0x8000, 0x8000}) os/file.go:119 +0x78 io.copyBuffer({0x4000c7da40, 0xc00043ca00}, {0x4000c7d900, 0xc00050c2b0}, {0x0, 0x0, 0x0}) io/io.go:423 +0x1d0 io.Copy(...) io/io.go:382 os/exec.(*Cmd).writerDescriptor.func1() os/exec/exec.go:311 +0x5c os/exec.(*Cmd).Start.func1(0xc00015e840, 0xc00043ca80) os/exec/exec.go:441 +0x28 created by os/exec.(*Cmd).Start os/exec/exec.go:440 +0x7f8 FAIL cuelang.org/go/cmd/cue/cmd 600.403s ? cuelang.org/go/cmd/cue/cmd/interfaces [no test files] === RUN TestAttributes === RUN TestAttributes/#00 === RUN TestAttributes/#01 === RUN TestAttributes/#02 === RUN TestAttributes/#03 === RUN TestAttributes/#04 --- PASS: TestAttributes (0.09s) --- PASS: TestAttributes/#00 (0.06s) --- PASS: TestAttributes/#01 (0.00s) --- PASS: TestAttributes/#02 (0.00s) --- PASS: TestAttributes/#03 (0.00s) --- PASS: TestAttributes/#04 (0.00s) === RUN TestAttributeErr === RUN TestAttributeErr/a-foo === RUN TestAttributeErr/a-bar === RUN TestAttributeErr/xx-bar === RUN TestAttributeErr/e-bar --- PASS: TestAttributeErr (0.02s) --- PASS: TestAttributeErr/a-foo (0.00s) --- PASS: TestAttributeErr/a-bar (0.00s) --- PASS: TestAttributeErr/xx-bar (0.00s) --- PASS: TestAttributeErr/e-bar (0.00s) === RUN TestAttributeString === RUN TestAttributeString/a.foo:0 === RUN TestAttributeString/a.foo:2 === RUN TestAttributeString/b.bar:3 === RUN TestAttributeString/e.bar:0 === RUN TestAttributeString/b.foo:4 --- PASS: TestAttributeString (0.00s) --- PASS: TestAttributeString/a.foo:0 (0.00s) --- PASS: TestAttributeString/a.foo:2 (0.00s) --- PASS: TestAttributeString/b.bar:3 (0.00s) --- PASS: TestAttributeString/e.bar:0 (0.00s) --- PASS: TestAttributeString/b.foo:4 (0.00s) === RUN TestAttributeInt === RUN TestAttributeInt/a.foo:0 === RUN TestAttributeInt/b.bar:1 === RUN TestAttributeInt/e.bar:0 === RUN TestAttributeInt/b.foo:4 === RUN TestAttributeInt/a.foo:2 --- PASS: TestAttributeInt (0.03s) --- PASS: TestAttributeInt/a.foo:0 (0.00s) --- PASS: TestAttributeInt/b.bar:1 (0.00s) --- PASS: TestAttributeInt/e.bar:0 (0.02s) --- PASS: TestAttributeInt/b.foo:4 (0.00s) --- PASS: TestAttributeInt/a.foo:2 (0.00s) === RUN TestAttributeFlag === RUN TestAttributeFlag/a.foo:0 === RUN TestAttributeFlag/b.bar:1 === RUN TestAttributeFlag/b.bar:0 === RUN TestAttributeFlag/e.bar:0 === RUN TestAttributeFlag/b.foo:4 --- PASS: TestAttributeFlag (0.00s) --- PASS: TestAttributeFlag/a.foo:0 (0.00s) --- PASS: TestAttributeFlag/b.bar:1 (0.00s) --- PASS: TestAttributeFlag/b.bar:0 (0.00s) --- PASS: TestAttributeFlag/e.bar:0 (0.00s) --- PASS: TestAttributeFlag/b.foo:4 (0.00s) === RUN TestAttributeLookup === RUN TestAttributeLookup/a.foo:0 === RUN TestAttributeLookup/b.bar:1 === RUN TestAttributeLookup/b.bar:0 === RUN TestAttributeLookup/b.bar:0#01 === RUN TestAttributeLookup/b.foo:2 === RUN TestAttributeLookup/b.foo:2#01 === RUN TestAttributeLookup/e.bar:0 === RUN TestAttributeLookup/b.foo:4 --- PASS: TestAttributeLookup (0.01s) --- PASS: TestAttributeLookup/a.foo:0 (0.00s) --- PASS: TestAttributeLookup/b.bar:1 (0.00s) --- PASS: TestAttributeLookup/b.bar:0 (0.00s) --- PASS: TestAttributeLookup/b.bar:0#01 (0.00s) --- PASS: TestAttributeLookup/b.foo:2 (0.00s) --- PASS: TestAttributeLookup/b.foo:2#01 (0.00s) --- PASS: TestAttributeLookup/e.bar:0 (0.00s) --- PASS: TestAttributeLookup/b.foo:4 (0.00s) === RUN TestFromExpr === RUN TestFromExpr/#00 === RUN TestFromExpr/#01 --- PASS: TestFromExpr (0.02s) --- PASS: TestFromExpr/#00 (0.01s) --- PASS: TestFromExpr/#01 (0.01s) === RUN TestBuild === RUN TestBuild/#00 === RUN TestBuild/#01 === RUN TestBuild/#02 === RUN TestBuild/#03 === RUN TestBuild/#04 === RUN TestBuild/#05 === RUN TestBuild/#06 === RUN TestBuild/#07 === RUN TestBuild/#08 === RUN TestBuild/#09 === RUN TestBuild/#10 --- PASS: TestBuild (0.04s) --- PASS: TestBuild/#00 (0.00s) --- PASS: TestBuild/#01 (0.02s) --- PASS: TestBuild/#02 (0.00s) --- PASS: TestBuild/#03 (0.00s) --- PASS: TestBuild/#04 (0.00s) --- PASS: TestBuild/#05 (0.00s) --- PASS: TestBuild/#06 (0.00s) --- PASS: TestBuild/#07 (0.00s) --- PASS: TestBuild/#08 (0.00s) --- PASS: TestBuild/#09 (0.00s) --- PASS: TestBuild/#10 (0.00s) === RUN TestDecode === RUN TestDecode/null === RUN TestDecode/1 === RUN TestDecode/_|_ === RUN TestDecode/null#01 === RUN TestDecode/[null] === RUN TestDecode/true === RUN TestDecode/false === RUN TestDecode/bool === RUN TestDecode/_ === RUN TestDecode/"str" === RUN TestDecode/"str"#01 === RUN TestDecode/'bytes' === RUN TestDecode/'bytes'#01 === RUN TestDecode/1#01 === RUN TestDecode/500 === RUN TestDecode/501 === RUN TestDecode/{} === RUN TestDecode/{A:1,b:2,c:3} === RUN TestDecode/{a:1,m:{a:_3}} === RUN TestDecode/{p:_1} === RUN TestDecode/{for_k,_v_in_y_if_v_>_1_{"\(k)":_v}_}___y:_{a:1,b:2,c:3} === RUN TestDecode/{a:1,b:2,c:int} === RUN TestDecode/[] === RUN TestDecode/[1,2,3] === RUN TestDecode/[1,2,3]#01 === RUN TestDecode/[1,2,3]#02 === RUN TestDecode/[1,2,3]#03 === RUN TestDecode/[for_x_in_#y_if_x_>_1_{_x_}]_____#y:_[1,2,3] === RUN TestDecode/[int] === RUN TestDecode/{a:_1,_b:_2,_c:_3} === RUN TestDecode/{"1":_1,_"-2":_2,_"3":_3} === RUN TestDecode/{"1":_1,_"2":_2,_"3":_3} === RUN TestDecode/{a:_1,_b:_2,_c:_true,_d:_e:_2} === RUN TestDecode/{a:_b:_*2_|_int} === RUN TestDecode/{a:_1,_b:_2,_c:_true} === RUN TestDecode/{"300":_3} === RUN TestDecode/{"300":_3}#01 --- PASS: TestDecode (0.21s) --- PASS: TestDecode/null (0.00s) --- SKIP: TestDecode/1 (0.00s) --- SKIP: TestDecode/_|_ (0.00s) --- PASS: TestDecode/null#01 (0.00s) --- PASS: TestDecode/[null] (0.00s) --- PASS: TestDecode/true (0.00s) --- PASS: TestDecode/false (0.00s) --- SKIP: TestDecode/bool (0.00s) --- PASS: TestDecode/_ (0.00s) --- PASS: TestDecode/"str" (0.00s) --- SKIP: TestDecode/"str"#01 (0.00s) --- PASS: TestDecode/'bytes' (0.02s) --- PASS: TestDecode/'bytes'#01 (0.00s) --- PASS: TestDecode/1#01 (0.00s) --- SKIP: TestDecode/500 (0.00s) --- SKIP: TestDecode/501 (0.01s) --- PASS: TestDecode/{} (0.00s) --- PASS: TestDecode/{A:1,b:2,c:3} (0.00s) --- PASS: TestDecode/{a:1,m:{a:_3}} (0.07s) --- PASS: TestDecode/{p:_1} (0.00s) --- PASS: TestDecode/{for_k,_v_in_y_if_v_>_1_{"\(k)":_v}_}___y:_{a:1,b:2,c:3} (0.01s) --- SKIP: TestDecode/{a:1,b:2,c:int} (0.00s) --- PASS: TestDecode/[] (0.00s) --- PASS: TestDecode/[1,2,3] (0.00s) --- PASS: TestDecode/[1,2,3]#01 (0.00s) --- PASS: TestDecode/[1,2,3]#02 (0.00s) --- PASS: TestDecode/[1,2,3]#03 (0.00s) --- PASS: TestDecode/[for_x_in_#y_if_x_>_1_{_x_}]_____#y:_[1,2,3] (0.00s) --- SKIP: TestDecode/[int] (0.00s) --- PASS: TestDecode/{a:_1,_b:_2,_c:_3} (0.00s) --- PASS: TestDecode/{"1":_1,_"-2":_2,_"3":_3} (0.00s) --- PASS: TestDecode/{"1":_1,_"2":_2,_"3":_3} (0.00s) --- PASS: TestDecode/{a:_1,_b:_2,_c:_true,_d:_e:_2} (0.00s) --- PASS: TestDecode/{a:_b:_*2_|_int} (0.01s) --- SKIP: TestDecode/{a:_1,_b:_2,_c:_true} (0.00s) --- SKIP: TestDecode/{"300":_3} (0.00s) --- SKIP: TestDecode/{"300":_3}#01 (0.00s) === RUN TestMarshalling === RUN TestMarshalling/foo.cue === RUN TestMarshalling/bar.cue === RUN TestMarshalling/qux.cue === RUN TestMarshalling/baz.cue --- PASS: TestMarshalling (0.12s) --- PASS: TestMarshalling/foo.cue (0.03s) --- PASS: TestMarshalling/bar.cue (0.00s) --- PASS: TestMarshalling/qux.cue (0.03s) --- PASS: TestMarshalling/baz.cue (0.03s) === RUN TestMarshalMultiPackage === RUN TestMarshalMultiPackage/#00 === RUN TestMarshalMultiPackage/#01 === RUN TestMarshalMultiPackage/#02 === RUN TestMarshalMultiPackage/#03 === RUN TestMarshalMultiPackage/#04 --- PASS: TestMarshalMultiPackage (0.09s) --- PASS: TestMarshalMultiPackage/#00 (0.01s) --- PASS: TestMarshalMultiPackage/#01 (0.01s) --- PASS: TestMarshalMultiPackage/#02 (0.03s) --- PASS: TestMarshalMultiPackage/#03 (0.03s) --- PASS: TestMarshalMultiPackage/#04 (0.01s) === RUN TestPaths === RUN TestPaths/list.[_] === RUN TestPaths/#Foo.a.b === RUN TestPaths/#Foo.a.b#01 === RUN TestPaths/"#Foo".c.d === RUN TestPaths/#Foo.a.b#02 === RUN TestPaths/b[2] === RUN TestPaths/c."#Foo" === RUN TestPaths/_foo.b === RUN TestPaths/#Foo.a.b#03 === RUN TestPaths/#Foo.a.c === RUN TestPaths/b[2]#01 === RUN TestPaths/c."#Foo"#01 === RUN TestPaths/_|_ === RUN TestPaths/_|_#01 === RUN TestPaths/_|_#02 === RUN TestPaths/_|_#03 === RUN TestPaths/_|_#04 === RUN TestPaths/_|_#05 === RUN TestPaths/map.[_] === RUN TestPaths/list.[_]#01 --- PASS: TestPaths (0.03s) --- PASS: TestPaths/list.[_] (0.00s) --- PASS: TestPaths/#Foo.a.b (0.00s) --- PASS: TestPaths/#Foo.a.b#01 (0.00s) --- PASS: TestPaths/"#Foo".c.d (0.00s) --- PASS: TestPaths/#Foo.a.b#02 (0.00s) --- PASS: TestPaths/b[2] (0.00s) --- PASS: TestPaths/c."#Foo" (0.00s) --- PASS: TestPaths/_foo.b (0.00s) --- PASS: TestPaths/#Foo.a.b#03 (0.00s) --- PASS: TestPaths/#Foo.a.c (0.00s) --- PASS: TestPaths/b[2]#01 (0.00s) --- PASS: TestPaths/c."#Foo"#01 (0.00s) --- PASS: TestPaths/_|_ (0.00s) --- PASS: TestPaths/_|_#01 (0.00s) --- PASS: TestPaths/_|_#02 (0.00s) --- PASS: TestPaths/_|_#03 (0.00s) --- PASS: TestPaths/_|_#04 (0.00s) --- PASS: TestPaths/_|_#05 (0.00s) --- PASS: TestPaths/map.[_] (0.00s) --- PASS: TestPaths/list.[_]#01 (0.00s) === RUN TestX resolve_test.go:28: --- SKIP: TestX (0.00s) === RUN TestAPI === RUN TestAPI/#00 === RUN TestAPI/#01 === RUN TestAPI/#02 --- PASS: TestAPI (0.01s) --- PASS: TestAPI/#00 (0.01s) --- PASS: TestAPI/#01 (0.00s) --- PASS: TestAPI/#02 (0.00s) === RUN TestValueType === RUN TestValueType/v:__ === RUN TestValueType/v:__|_ === RUN TestValueType/v:_1&2 === RUN TestValueType/v:_b,_b:_1&2 === RUN TestValueType/v:_(b[a]),_b:_1,_a:_1 === RUN TestValueType/v:_(b)____b:_bool === RUN TestValueType/v:_([][b]),_b:_"d" === RUN TestValueType/v:_null === RUN TestValueType/v:_true === RUN TestValueType/v:_false === RUN TestValueType/v:_bool === RUN TestValueType/v:_2 === RUN TestValueType/v:_2.0 === RUN TestValueType/v:_2.0Mi === RUN TestValueType/v:_14_000 === RUN TestValueType/v:_>=0_&_<5 === RUN TestValueType/v:_float === RUN TestValueType/v:_"str" === RUN TestValueType/v:_'''_''' === RUN TestValueType/v:_string === RUN TestValueType/v:_{} === RUN TestValueType/v:_close({}) === RUN TestValueType/v:_[] === RUN TestValueType/v:_[...int] === RUN TestValueType/v:_{a:_int,_b:_[1][a]}.b === RUN TestValueType/import_"time"___v:_time.Time === RUN TestValueType/import_"time"___v:_{a:_time.Time}.a === RUN TestValueType/import_"time"____v:_{a:_time.Time_&_string}.a === RUN TestValueType/import_"strings"____v:_{a:_strings.ContainsAny("D")}.a === RUN TestValueType/import_"struct"___v:_{a:_struct.MaxFields(2)_&_{}}.a --- PASS: TestValueType (0.05s) --- PASS: TestValueType/v:__ (0.00s) --- PASS: TestValueType/v:__|_ (0.00s) --- PASS: TestValueType/v:_1&2 (0.00s) --- PASS: TestValueType/v:_b,_b:_1&2 (0.00s) --- PASS: TestValueType/v:_(b[a]),_b:_1,_a:_1 (0.00s) --- PASS: TestValueType/v:_(b)____b:_bool (0.00s) --- PASS: TestValueType/v:_([][b]),_b:_"d" (0.00s) --- PASS: TestValueType/v:_null (0.00s) --- PASS: TestValueType/v:_true (0.00s) --- PASS: TestValueType/v:_false (0.00s) --- PASS: TestValueType/v:_bool (0.00s) --- PASS: TestValueType/v:_2 (0.00s) --- PASS: TestValueType/v:_2.0 (0.00s) --- PASS: TestValueType/v:_2.0Mi (0.00s) --- PASS: TestValueType/v:_14_000 (0.00s) --- PASS: TestValueType/v:_>=0_&_<5 (0.00s) --- PASS: TestValueType/v:_float (0.00s) --- PASS: TestValueType/v:_"str" (0.00s) --- PASS: TestValueType/v:_'''_''' (0.01s) --- PASS: TestValueType/v:_string (0.00s) --- PASS: TestValueType/v:_{} (0.00s) --- PASS: TestValueType/v:_close({}) (0.00s) --- PASS: TestValueType/v:_[] (0.00s) --- PASS: TestValueType/v:_[...int] (0.00s) --- PASS: TestValueType/v:_{a:_int,_b:_[1][a]}.b (0.00s) --- PASS: TestValueType/import_"time"___v:_time.Time (0.00s) --- PASS: TestValueType/import_"time"___v:_{a:_time.Time}.a (0.00s) --- PASS: TestValueType/import_"time"____v:_{a:_time.Time_&_string}.a (0.00s) --- PASS: TestValueType/import_"strings"____v:_{a:_strings.ContainsAny("D")}.a (0.00s) --- PASS: TestValueType/import_"struct"___v:_{a:_struct.MaxFields(2)_&_{}}.a (0.00s) === RUN TestInt === RUN TestInt/1 === RUN TestInt/-1 === RUN TestInt/-111222333444555666777888999000 === RUN TestInt/111222333444555666777888999000 === RUN TestInt/1.0 === RUN TestInt/int === RUN TestInt/_|_ --- PASS: TestInt (0.01s) --- PASS: TestInt/1 (0.00s) --- PASS: TestInt/-1 (0.00s) --- PASS: TestInt/-111222333444555666777888999000 (0.00s) --- PASS: TestInt/111222333444555666777888999000 (0.00s) --- PASS: TestInt/1.0 (0.00s) --- PASS: TestInt/int (0.00s) --- PASS: TestInt/_|_ (0.00s) === RUN TestFloat === RUN TestFloat/1 === RUN TestFloat/-1 === RUN TestFloat/1.0 === RUN TestFloat/2.6 === RUN TestFloat/20.600 === RUN TestFloat/1/0 === RUN TestFloat/1.797693134862315708145274237317043567982e+308 === RUN TestFloat/-1.797693134862315708145274237317043567982e+308 === RUN TestFloat/4.940656458412465441765687928682213723650e-324 === RUN TestFloat/-4.940656458412465441765687928682213723650e-324 --- PASS: TestFloat (0.03s) --- PASS: TestFloat/1 (0.00s) --- PASS: TestFloat/-1 (0.00s) --- PASS: TestFloat/1.0 (0.00s) --- PASS: TestFloat/2.6 (0.00s) --- PASS: TestFloat/20.600 (0.00s) --- PASS: TestFloat/1/0 (0.00s) --- PASS: TestFloat/1.797693134862315708145274237317043567982e+308 (0.02s) --- PASS: TestFloat/-1.797693134862315708145274237317043567982e+308 (0.00s) --- PASS: TestFloat/4.940656458412465441765687928682213723650e-324 (0.00s) --- PASS: TestFloat/-4.940656458412465441765687928682213723650e-324 (0.00s) === RUN TestString === RUN TestString/"" === RUN TestString/"Hello_world!" === RUN TestString/"Hello_\(#world)!"___#world:_"world" === RUN TestString/string --- PASS: TestString (0.03s) --- PASS: TestString/"" (0.00s) --- PASS: TestString/"Hello_world!" (0.00s) --- PASS: TestString/"Hello_\(#world)!"___#world:_"world" (0.00s) --- SKIP: TestString/string (0.00s) === RUN TestError === RUN TestError/_|_ === RUN TestError/"Hello_world!" === RUN TestError/string --- PASS: TestError (0.00s) --- PASS: TestError/_|_ (0.00s) --- PASS: TestError/"Hello_world!" (0.00s) --- PASS: TestError/string (0.00s) === RUN TestNull === RUN TestNull/v:__|_ === RUN TestNull/v:_"str" === RUN TestNull/v:_null === RUN TestNull/v:__ --- PASS: TestNull (0.00s) --- PASS: TestNull/v:__|_ (0.00s) --- PASS: TestNull/v:_"str" (0.00s) --- PASS: TestNull/v:_null (0.00s) --- PASS: TestNull/v:__ (0.00s) === RUN TestBool === RUN TestBool/_|_ === RUN TestBool/"str" === RUN TestBool/true === RUN TestBool/false === RUN TestBool/bool --- PASS: TestBool (0.00s) --- PASS: TestBool/_|_ (0.00s) --- PASS: TestBool/"str" (0.00s) --- PASS: TestBool/true (0.00s) --- PASS: TestBool/false (0.00s) --- PASS: TestBool/bool (0.00s) === RUN TestList === RUN TestList/_|_ === RUN TestList/"str" === RUN TestList/[] === RUN TestList/[1,2,3] === RUN TestList/[for_x_in_#y_if_x_>_1_{_x_}]___#y:_[1,2,3] === RUN TestList/[int] --- PASS: TestList (0.01s) --- SKIP: TestList/_|_ (0.00s) --- SKIP: TestList/"str" (0.00s) --- PASS: TestList/[] (0.00s) --- PASS: TestList/[1,2,3] (0.00s) --- PASS: TestList/[for_x_in_#y_if_x_>_1_{_x_}]___#y:_[1,2,3] (0.00s) --- SKIP: TestList/[int] (0.00s) === RUN TestFields === RUN TestFields/{_#def:_1,__hidden:_2,_opt?:_3,_reg:_4_} === RUN TestFields/_|_ === RUN TestFields/"str" === RUN TestFields/{} === RUN TestFields/{a:1,b:2,c:3} === RUN TestFields/{a:1,"_b":2,c:3,_d:4} === RUN TestFields/{_a:"a"} === RUN TestFields/{_for_k,_v_in_#y_if_v_>_1_{"\(k)":_v}_}___#y:_{a:1,b:2,c:3} === RUN TestFields/{_#def:_1,__hidden:_2,_opt?:_3,_reg:_4_}#01 === RUN TestFields/{a:1,b:2,c:int} --- PASS: TestFields (0.04s) --- PASS: TestFields/{_#def:_1,__hidden:_2,_opt?:_3,_reg:_4_} (0.02s) --- SKIP: TestFields/_|_ (0.01s) --- SKIP: TestFields/"str" (0.00s) --- PASS: TestFields/{} (0.00s) --- PASS: TestFields/{a:1,b:2,c:3} (0.00s) --- PASS: TestFields/{a:1,"_b":2,c:3,_d:4} (0.00s) --- PASS: TestFields/{_a:"a"} (0.00s) --- PASS: TestFields/{_for_k,_v_in_#y_if_v_>_1_{"\(k)":_v}_}___#y:_{a:1,b:2,c:3} (0.00s) --- PASS: TestFields/{_#def:_1,__hidden:_2,_opt?:_3,_reg:_4_}#01 (0.00s) --- SKIP: TestFields/{a:1,b:2,c:int} (0.00s) === RUN TestAllFields === RUN TestAllFields/{a:1,"_b":2,c:3,_d:4} === RUN TestAllFields/{_a:"a"} === RUN TestAllFields/{_a:"a",_b?:_"b",_#c:_3} --- PASS: TestAllFields (0.01s) --- PASS: TestAllFields/{a:1,"_b":2,c:3,_d:4} (0.00s) --- PASS: TestAllFields/{_a:"a"} (0.00s) --- PASS: TestAllFields/{_a:"a",_b?:_"b",_#c:_3} (0.00s) === RUN TestLookup --- PASS: TestLookup (0.01s) === RUN TestFill --- PASS: TestFill (0.01s) === RUN TestFill2 --- PASS: TestFill2 (0.00s) === RUN TestFillPath === RUN TestFillPath/#00 === RUN TestFillPath/#01 === RUN TestFillPath/#02 === RUN TestFillPath/#03 === RUN TestFillPath/#04 === RUN TestFillPath/#05 === RUN TestFillPath/#06 === RUN TestFillPath/#07 === RUN TestFillPath/#08 === RUN TestFillPath/#09 === RUN TestFillPath/#10 === RUN TestFillPath/#11 === RUN TestFillPath/#12 === RUN TestFillPath/#13 === RUN TestFillPath/#14 === RUN TestFillPath/#15 === RUN TestFillPath/#16 === RUN TestFillPath/#17 === RUN TestFillPath/#18 --- PASS: TestFillPath (0.04s) --- PASS: TestFillPath/#00 (0.00s) --- PASS: TestFillPath/#01 (0.00s) --- PASS: TestFillPath/#02 (0.00s) --- PASS: TestFillPath/#03 (0.00s) --- PASS: TestFillPath/#04 (0.00s) --- PASS: TestFillPath/#05 (0.00s) --- PASS: TestFillPath/#06 (0.00s) --- PASS: TestFillPath/#07 (0.00s) --- PASS: TestFillPath/#08 (0.00s) --- PASS: TestFillPath/#09 (0.00s) --- PASS: TestFillPath/#10 (0.00s) --- PASS: TestFillPath/#11 (0.00s) --- PASS: TestFillPath/#12 (0.00s) --- PASS: TestFillPath/#13 (0.00s) --- PASS: TestFillPath/#14 (0.00s) --- PASS: TestFillPath/#15 (0.00s) --- PASS: TestFillPath/#16 (0.00s) --- PASS: TestFillPath/#17 (0.00s) --- PASS: TestFillPath/#18 (0.00s) === RUN TestFillPathError === RUN TestFillPathError/#00 --- PASS: TestFillPathError (0.00s) --- PASS: TestFillPathError/#00 (0.00s) === RUN TestAllows === RUN TestAllows/allow_new_field_in_open_struct === RUN TestAllows/disallow_new_field_in_definition === RUN TestAllows/disallow_new_field_in_explicitly_closed_struct === RUN TestAllows/allow_index_in_open_list === RUN TestAllows/disallow_index_in_closed_list === RUN TestAllows/allow_existing_index_in_closed_list === RUN TestAllows/definition_in_non-def_closed_list === RUN TestAllows/definition_in_def_open_list === RUN TestAllows/field_in_def_open_list === RUN TestAllows/definition_in_open_scalar === RUN TestAllows/field_in_scalar === RUN TestAllows/any_index_in_closed_list === RUN TestAllows/any_index_in_open_list === RUN TestAllows/definition_in_open_scalar#01 === RUN TestAllows/field_in_open_scalar === RUN TestAllows/allow_field_in_any === RUN TestAllows/allow_index_in_any === RUN TestAllows/allow_index_in_disjunction === RUN TestAllows/allow_index_in_disjunction#01 === RUN TestAllows/disallow_index_in_disjunction === RUN TestAllows/disallow_index_in_non-list_disjunction === RUN TestAllows/allow_label_in_disjunction === RUN TestAllows/allow_label_in_disjunction#01 === RUN TestAllows/disallow_label_in_disjunction === RUN TestAllows/pattern_constraint === RUN TestAllows/pattern_constraint#01 === RUN TestAllows/any_in_pattern_constraint === RUN TestAllows/any_in_pattern_constraint#01 --- PASS: TestAllows (0.04s) --- PASS: TestAllows/allow_new_field_in_open_struct (0.00s) --- PASS: TestAllows/disallow_new_field_in_definition (0.00s) --- PASS: TestAllows/disallow_new_field_in_explicitly_closed_struct (0.00s) --- PASS: TestAllows/allow_index_in_open_list (0.00s) --- PASS: TestAllows/disallow_index_in_closed_list (0.00s) --- PASS: TestAllows/allow_existing_index_in_closed_list (0.00s) --- PASS: TestAllows/definition_in_non-def_closed_list (0.00s) --- PASS: TestAllows/definition_in_def_open_list (0.00s) --- PASS: TestAllows/field_in_def_open_list (0.00s) --- PASS: TestAllows/definition_in_open_scalar (0.00s) --- PASS: TestAllows/field_in_scalar (0.00s) --- PASS: TestAllows/any_index_in_closed_list (0.00s) --- PASS: TestAllows/any_index_in_open_list (0.00s) --- PASS: TestAllows/definition_in_open_scalar#01 (0.00s) --- PASS: TestAllows/field_in_open_scalar (0.00s) --- PASS: TestAllows/allow_field_in_any (0.00s) --- PASS: TestAllows/allow_index_in_any (0.00s) --- PASS: TestAllows/allow_index_in_disjunction (0.00s) --- PASS: TestAllows/allow_index_in_disjunction#01 (0.00s) --- PASS: TestAllows/disallow_index_in_disjunction (0.00s) --- PASS: TestAllows/disallow_index_in_non-list_disjunction (0.00s) --- PASS: TestAllows/allow_label_in_disjunction (0.00s) --- PASS: TestAllows/allow_label_in_disjunction#01 (0.00s) --- PASS: TestAllows/disallow_label_in_disjunction (0.00s) --- PASS: TestAllows/pattern_constraint (0.00s) --- PASS: TestAllows/pattern_constraint#01 (0.00s) --- PASS: TestAllows/any_in_pattern_constraint (0.00s) --- PASS: TestAllows/any_in_pattern_constraint#01 (0.02s) === RUN TestFillFloat --- PASS: TestFillFloat (0.01s) === RUN TestValue_LookupDef === RUN TestValue_LookupDef/#foo === RUN TestValue_LookupDef/_foo === RUN TestValue_LookupDef/_#foo === RUN TestValue_LookupDef/#foo#01 --- PASS: TestValue_LookupDef (0.00s) --- PASS: TestValue_LookupDef/#foo (0.00s) --- PASS: TestValue_LookupDef/_foo (0.00s) --- PASS: TestValue_LookupDef/_#foo (0.00s) --- PASS: TestValue_LookupDef/#foo#01 (0.00s) === RUN TestDefaults === RUN TestDefaults/number_|_*1 === RUN TestDefaults/1_|_2_|_*3 === RUN TestDefaults/*{a:1,b:2}|{a:1}|{b:2} === RUN TestDefaults/{a:1}&{b:2} --- PASS: TestDefaults (0.01s) --- PASS: TestDefaults/number_|_*1 (0.00s) --- PASS: TestDefaults/1_|_2_|_*3 (0.00s) --- PASS: TestDefaults/*{a:1,b:2}|{a:1}|{b:2} (0.00s) --- PASS: TestDefaults/{a:1}&{b:2} (0.00s) === RUN TestLen === RUN TestLen/[1,_3] === RUN TestLen/[1,_3,_...] === RUN TestLen/"foo" === RUN TestLen/'foo' === RUN TestLen/3 --- PASS: TestLen (0.02s) --- PASS: TestLen/[1,_3] (0.00s) --- PASS: TestLen/[1,_3,_...] (0.00s) --- PASS: TestLen/"foo" (0.00s) --- PASS: TestLen/'foo' (0.00s) --- PASS: TestLen/3 (0.00s) === RUN TestTemplate === RUN TestTemplate/#00 === RUN TestTemplate/#01 === RUN TestTemplate/#02 === RUN TestTemplate/#03 === RUN TestTemplate/#04 --- PASS: TestTemplate (0.01s) --- PASS: TestTemplate/#00 (0.00s) --- PASS: TestTemplate/#01 (0.00s) --- PASS: TestTemplate/#02 (0.00s) --- PASS: TestTemplate/#03 (0.00s) --- PASS: TestTemplate/#04 (0.00s) === RUN TestElem === RUN TestElem/#00 === RUN TestElem/#01 === RUN TestElem/#02 === RUN TestElem/#03 === RUN TestElem/#04 --- PASS: TestElem (0.01s) --- PASS: TestElem/#00 (0.00s) --- PASS: TestElem/#01 (0.00s) --- PASS: TestElem/#02 (0.00s) --- PASS: TestElem/#03 (0.00s) --- PASS: TestElem/#04 (0.00s) === RUN TestSubsume === RUN TestSubsume/4 === RUN TestSubsume/a:_string,_b:_"foo" === RUN TestSubsume/a:_string,_b:_"foo"#01 === RUN TestSubsume/a:_{a:_string,_b:_4},_b:_{a:_"foo",_b:_4} === RUN TestSubsume/a:_[string,__4],_b:_["foo",_4] === RUN TestSubsume/a:_[...string],_b:_["foo"] === RUN TestSubsume/a:_[...int],_b:_["foo"] === RUN TestSubsume/___#Run:_{_action:_"run",_command:_[...string]_}___b:_{_action:_"run",_command:_["echo",_"hello"]_}___ === RUN TestSubsume/____#Run:_{_action:_"run",_command:_[...string]_}____b:_{_action:_"run",_command:_["echo",_"hello"]_}____ === RUN TestSubsume/___a:_<5___b:_*3_|_int___ === RUN TestSubsume/____a:_<5____b:_*3_|_int____ === RUN TestSubsume/____#A:_{_____exact:_string____}_|_{_____regex:_string____}____#B:_{_____exact:_string____}_|_{_____regex:_string____}____ --- PASS: TestSubsume (0.01s) --- PASS: TestSubsume/4 (0.00s) --- PASS: TestSubsume/a:_string,_b:_"foo" (0.00s) --- PASS: TestSubsume/a:_string,_b:_"foo"#01 (0.00s) --- PASS: TestSubsume/a:_{a:_string,_b:_4},_b:_{a:_"foo",_b:_4} (0.00s) --- PASS: TestSubsume/a:_[string,__4],_b:_["foo",_4] (0.00s) --- PASS: TestSubsume/a:_[...string],_b:_["foo"] (0.00s) --- PASS: TestSubsume/a:_[...int],_b:_["foo"] (0.00s) --- PASS: TestSubsume/___#Run:_{_action:_"run",_command:_[...string]_}___b:_{_action:_"run",_command:_["echo",_"hello"]_}___ (0.00s) --- PASS: TestSubsume/____#Run:_{_action:_"run",_command:_[...string]_}____b:_{_action:_"run",_command:_["echo",_"hello"]_}____ (0.00s) --- PASS: TestSubsume/___a:_<5___b:_*3_|_int___ (0.00s) --- PASS: TestSubsume/____a:_<5____b:_*3_|_int____ (0.00s) --- PASS: TestSubsume/____#A:_{_____exact:_string____}_|_{_____regex:_string____}____#B:_{_____exact:_string____}_|_{_____regex:_string____}____ (0.00s) === RUN TestSubsumes === RUN TestSubsumes/4 === RUN TestSubsumes/a:_string,_b:_"foo" === RUN TestSubsumes/a:_string,_b:_"foo"#01 === RUN TestSubsumes/a:_{a:_string,_b:_4},_b:_{a:_"foo",_b:_4} === RUN TestSubsumes/a:_[string,__4],_b:_["foo",_4] === RUN TestSubsumes/a:_[...string],_b:_["foo"] === RUN TestSubsumes/a:_[...int],_b:_["foo"] === RUN TestSubsumes/___a:_{_action:_"run",_command:_[...string]_}___b:_{_action:_"run",_command:_["echo",_"hello"]_}___ --- PASS: TestSubsumes (0.01s) --- PASS: TestSubsumes/4 (0.00s) --- PASS: TestSubsumes/a:_string,_b:_"foo" (0.00s) --- PASS: TestSubsumes/a:_string,_b:_"foo"#01 (0.00s) --- PASS: TestSubsumes/a:_{a:_string,_b:_4},_b:_{a:_"foo",_b:_4} (0.00s) --- PASS: TestSubsumes/a:_[string,__4],_b:_["foo",_4] (0.00s) --- PASS: TestSubsumes/a:_[...string],_b:_["foo"] (0.00s) --- PASS: TestSubsumes/a:_[...int],_b:_["foo"] (0.00s) --- PASS: TestSubsumes/___a:_{_action:_"run",_command:_[...string]_}___b:_{_action:_"run",_command:_["echo",_"hello"]_}___ (0.00s) === RUN TestUnify === RUN TestUnify/4 === RUN TestUnify/a:_string,_b:_"foo" === RUN TestUnify/a:_string,_b:_"foo"#01 === RUN TestUnify/a:_{a:_string,_b:_4},_b:_{a:_"foo",_b:_4} === RUN TestUnify/a:_[string,__4],_b:_["foo",_4] === RUN TestUnify/a:_{a:_string,__hidden:_int,__#hidden:_int},_b:_close({a:_"foo"}) --- PASS: TestUnify (0.01s) --- PASS: TestUnify/4 (0.00s) --- PASS: TestUnify/a:_string,_b:_"foo" (0.00s) --- PASS: TestUnify/a:_string,_b:_"foo"#01 (0.00s) --- PASS: TestUnify/a:_{a:_string,_b:_4},_b:_{a:_"foo",_b:_4} (0.00s) --- PASS: TestUnify/a:_[string,__4],_b:_["foo",_4] (0.00s) --- PASS: TestUnify/a:_{a:_string,__hidden:_int,__#hidden:_int},_b:_close({a:_"foo"}) (0.00s) === RUN TestEquals === RUN TestEquals/#00 === RUN TestEquals/#01 === RUN TestEquals/#02 === RUN TestEquals/#03 === RUN TestEquals/#04 === RUN TestEquals/#05 === RUN TestEquals/#06 === RUN TestEquals/#07 === RUN TestEquals/#08 === RUN TestEquals/#09 === RUN TestEquals/#10 --- PASS: TestEquals (0.01s) --- PASS: TestEquals/#00 (0.00s) --- PASS: TestEquals/#01 (0.00s) --- PASS: TestEquals/#02 (0.00s) --- PASS: TestEquals/#03 (0.00s) --- PASS: TestEquals/#04 (0.00s) --- PASS: TestEquals/#05 (0.00s) --- PASS: TestEquals/#06 (0.00s) --- PASS: TestEquals/#07 (0.00s) --- PASS: TestEquals/#08 (0.00s) --- PASS: TestEquals/#09 (0.00s) --- PASS: TestEquals/#10 (0.00s) === RUN TestValidate === RUN TestValidate/issue_#51 === RUN TestValidate/concrete === RUN TestValidate/definition_error === RUN TestValidate/definition_error_okay_if_optional === RUN TestValidate/definition_with_optional === RUN TestValidate/disjunction === RUN TestValidate/disjunction_concrete === RUN TestValidate/incomplete_concrete === RUN TestValidate/incomplete === RUN TestValidate/list === RUN TestValidate/list_concrete === RUN TestValidate/allow_cycles === RUN TestValidate/disallow_cycles === RUN TestValidate/builtins_are_okay === RUN TestValidate/comprehension_error === RUN TestValidate/ignore_optional_in_schema === RUN TestValidate/issue324 === RUN TestValidate/allow_non-concrete_values_for_definitions --- PASS: TestValidate (0.03s) --- PASS: TestValidate/issue_#51 (0.00s) --- PASS: TestValidate/concrete (0.00s) --- PASS: TestValidate/definition_error (0.00s) --- PASS: TestValidate/definition_error_okay_if_optional (0.00s) --- PASS: TestValidate/definition_with_optional (0.00s) --- PASS: TestValidate/disjunction (0.00s) --- PASS: TestValidate/disjunction_concrete (0.00s) --- PASS: TestValidate/incomplete_concrete (0.00s) --- PASS: TestValidate/incomplete (0.00s) --- PASS: TestValidate/list (0.00s) --- PASS: TestValidate/list_concrete (0.01s) --- PASS: TestValidate/allow_cycles (0.00s) --- PASS: TestValidate/disallow_cycles (0.00s) --- PASS: TestValidate/builtins_are_okay (0.00s) --- PASS: TestValidate/comprehension_error (0.00s) --- PASS: TestValidate/ignore_optional_in_schema (0.00s) --- PASS: TestValidate/issue324 (0.00s) --- PASS: TestValidate/allow_non-concrete_values_for_definitions (0.00s) === RUN TestPath === RUN TestPath/a.b.c === RUN TestPath/b.l.1.c === RUN TestPath/b."b_3" === RUN TestPath/b."4b" --- PASS: TestPath (0.01s) --- PASS: TestPath/a.b.c (0.00s) --- PASS: TestPath/b.l.1.c (0.00s) --- PASS: TestPath/b."b_3" (0.00s) --- PASS: TestPath/b."4b" (0.00s) === RUN TestValueLookup === RUN TestValueLookup/explicit_error_(_|__literal)_in_source === RUN TestValueLookup/explicit_error_(_|__literal)_in_source#01 === RUN TestValueLookup/{a:{a:0,b:1,c:2},b:{d:0,e:int} === RUN TestValueLookup/0 === RUN TestValueLookup/{a:0,b:1,c:2} === RUN TestValueLookup/0#01 === RUN TestValueLookup/not_found === RUN TestValueLookup/cannot_use_value_0_(type_int)_as_struct --- PASS: TestValueLookup (0.02s) --- PASS: TestValueLookup/explicit_error_(_|__literal)_in_source (0.00s) --- PASS: TestValueLookup/explicit_error_(_|__literal)_in_source#01 (0.00s) --- PASS: TestValueLookup/{a:{a:0,b:1,c:2},b:{d:0,e:int} (0.00s) --- PASS: TestValueLookup/0 (0.00s) --- PASS: TestValueLookup/{a:0,b:1,c:2} (0.00s) --- PASS: TestValueLookup/0#01 (0.00s) --- PASS: TestValueLookup/not_found (0.00s) --- PASS: TestValueLookup/cannot_use_value_0_(type_int)_as_struct (0.00s) === RUN TestValueDoc === RUN TestValueDoc/field:foos === RUN TestValueDoc/field:foos_MyFoo === RUN TestValueDoc/field:foos_MyFoo_field1 === RUN TestValueDoc/field:foos_MyFoo_field2 === RUN TestValueDoc/field:foos_MyFoo_dup3 === RUN TestValueDoc/field:bar_field1 === RUN TestValueDoc/field:baz_field1 === RUN TestValueDoc/field:baz_field2 === RUN TestValueDoc/field:Foo === RUN TestValueDoc/field:Foo#01 --- PASS: TestValueDoc (0.01s) --- PASS: TestValueDoc/field:foos (0.00s) --- PASS: TestValueDoc/field:foos_MyFoo (0.00s) --- PASS: TestValueDoc/field:foos_MyFoo_field1 (0.00s) --- PASS: TestValueDoc/field:foos_MyFoo_field2 (0.00s) --- PASS: TestValueDoc/field:foos_MyFoo_dup3 (0.00s) --- PASS: TestValueDoc/field:bar_field1 (0.00s) --- PASS: TestValueDoc/field:baz_field1 (0.00s) --- PASS: TestValueDoc/field:baz_field2 (0.00s) --- PASS: TestValueDoc/field:Foo (0.00s) --- PASS: TestValueDoc/field:Foo#01 (0.00s) === RUN TestMarshalJSON === RUN TestMarshalJSON/0/"" === RUN TestMarshalJSON/1/null === RUN TestMarshalJSON/2/_|_ === RUN TestMarshalJSON/3/(a.b)___a:_{} === RUN TestMarshalJSON/4/true === RUN TestMarshalJSON/5/false === RUN TestMarshalJSON/6/bool === RUN TestMarshalJSON/7/"str" === RUN TestMarshalJSON/8/12_000 === RUN TestMarshalJSON/9/12.000 === RUN TestMarshalJSON/10/12M === RUN TestMarshalJSON/11/3.0e100 === RUN TestMarshalJSON/12/0/0 === RUN TestMarshalJSON/13/[] === RUN TestMarshalJSON/14/[1,_2,_3] === RUN TestMarshalJSON/15/[int] === RUN TestMarshalJSON/16/{} === RUN TestMarshalJSON/17/{a:_2,_b:_3,_c:_["A",_"B"]} === RUN TestMarshalJSON/18/{a:_2,_b:_3,_c:_[string,_"B"]} === RUN TestMarshalJSON/19/{a:_[{b:_[0,_{c:_string}]_}]_} === RUN TestMarshalJSON/20/{foo?:_1,_bar?:_2,_baz:_3} === RUN TestMarshalJSON/21/{foo?:_bar,_bar?:_foo,_baz:_3} === RUN TestMarshalJSON/22/a:_1.0/1 === RUN TestMarshalJSON/23/___a:_int___a:_>0___a:_<2____b:_int___b:_>=0.9___b:_<1.1____c:_int___c:_>1___c:_<=2____d:_int___d:_>=1___d:_<=1.5____e:_int___e:_>=1___e:_<=1.32____f:_>=1.1_&_<=1.1___ === RUN TestMarshalJSON/24/___#Task:_{____{_____op:__________"pull"_____tag:_________*"latest"_|_string_____tagInString:_tag_+_"dd"____}_|_{_____op:_"scratch"____}___}____foo:_#Task_&_{"op":_"pull"}___ === RUN TestMarshalJSON/25/x:_"\(string)":_"v" === RUN TestMarshalJSON/26/x:_"\(bool)":_"v" === RUN TestMarshalJSON/27/___x:_{____for_k,_v_in_y_{_____"\(k)":_v____}___}___y:_{}___ === RUN TestMarshalJSON/28/___x:_{____for_k,_v_in_y_{_____"\(k)":_v____}___}___y:_____ --- PASS: TestMarshalJSON (0.04s) --- PASS: TestMarshalJSON/0/"" (0.00s) --- PASS: TestMarshalJSON/1/null (0.00s) --- SKIP: TestMarshalJSON/2/_|_ (0.00s) --- SKIP: TestMarshalJSON/3/(a.b)___a:_{} (0.00s) --- PASS: TestMarshalJSON/4/true (0.00s) --- PASS: TestMarshalJSON/5/false (0.00s) --- SKIP: TestMarshalJSON/6/bool (0.00s) --- PASS: TestMarshalJSON/7/"str" (0.00s) --- PASS: TestMarshalJSON/8/12_000 (0.00s) --- PASS: TestMarshalJSON/9/12.000 (0.00s) --- PASS: TestMarshalJSON/10/12M (0.00s) --- PASS: TestMarshalJSON/11/3.0e100 (0.00s) --- SKIP: TestMarshalJSON/12/0/0 (0.00s) --- PASS: TestMarshalJSON/13/[] (0.00s) --- PASS: TestMarshalJSON/14/[1,_2,_3] (0.00s) --- SKIP: TestMarshalJSON/15/[int] (0.00s) --- PASS: TestMarshalJSON/16/{} (0.00s) --- PASS: TestMarshalJSON/17/{a:_2,_b:_3,_c:_["A",_"B"]} (0.00s) --- SKIP: TestMarshalJSON/18/{a:_2,_b:_3,_c:_[string,_"B"]} (0.00s) --- SKIP: TestMarshalJSON/19/{a:_[{b:_[0,_{c:_string}]_}]_} (0.00s) --- PASS: TestMarshalJSON/20/{foo?:_1,_bar?:_2,_baz:_3} (0.00s) --- PASS: TestMarshalJSON/21/{foo?:_bar,_bar?:_foo,_baz:_3} (0.00s) --- PASS: TestMarshalJSON/22/a:_1.0/1 (0.00s) --- PASS: TestMarshalJSON/23/___a:_int___a:_>0___a:_<2____b:_int___b:_>=0.9___b:_<1.1____c:_int___c:_>1___c:_<=2____d:_int___d:_>=1___d:_<=1.5____e:_int___e:_>=1___e:_<=1.32____f:_>=1.1_&_<=1.1___ (0.00s) --- PASS: TestMarshalJSON/24/___#Task:_{____{_____op:__________"pull"_____tag:_________*"latest"_|_string_____tagInString:_tag_+_"dd"____}_|_{_____op:_"scratch"____}___}____foo:_#Task_&_{"op":_"pull"}___ (0.00s) --- SKIP: TestMarshalJSON/25/x:_"\(string)":_"v" (0.00s) --- SKIP: TestMarshalJSON/26/x:_"\(bool)":_"v" (0.00s) --- PASS: TestMarshalJSON/27/___x:_{____for_k,_v_in_y_{_____"\(k)":_v____}___}___y:_{}___ (0.00s) --- SKIP: TestMarshalJSON/28/___x:_{____for_k,_v_in_y_{_____"\(k)":_v____}___}___y:_____ (0.00s) === RUN TestWalk === RUN TestWalk/0/"" === RUN TestWalk/1/null === RUN TestWalk/2/_|_ === RUN TestWalk/3/(a.b)____a:_{} === RUN TestWalk/4/true === RUN TestWalk/5/false === RUN TestWalk/6/bool === RUN TestWalk/7/"str" === RUN TestWalk/8/12_000 === RUN TestWalk/9/12.000 === RUN TestWalk/10/12M === RUN TestWalk/11/3.0e100 === RUN TestWalk/12/[] === RUN TestWalk/13/[1,_2,_3] === RUN TestWalk/14/[int] === RUN TestWalk/15/3_*_[1,_2] === RUN TestWalk/16/{} === RUN TestWalk/17/{a:_2,_b:_3,_c:_["A",_"B"]} --- PASS: TestWalk (0.01s) --- PASS: TestWalk/0/"" (0.00s) --- PASS: TestWalk/1/null (0.00s) --- PASS: TestWalk/2/_|_ (0.00s) --- PASS: TestWalk/3/(a.b)____a:_{} (0.00s) --- PASS: TestWalk/4/true (0.00s) --- PASS: TestWalk/5/false (0.00s) --- PASS: TestWalk/6/bool (0.00s) --- PASS: TestWalk/7/"str" (0.00s) --- PASS: TestWalk/8/12_000 (0.00s) --- PASS: TestWalk/9/12.000 (0.00s) --- PASS: TestWalk/10/12M (0.00s) --- PASS: TestWalk/11/3.0e100 (0.00s) --- PASS: TestWalk/12/[] (0.00s) --- PASS: TestWalk/13/[1,_2,_3] (0.00s) --- PASS: TestWalk/14/[int] (0.00s) --- PASS: TestWalk/15/3_*_[1,_2] (0.00s) --- PASS: TestWalk/16/{} (0.00s) --- PASS: TestWalk/17/{a:_2,_b:_3,_c:_["A",_"B"]} (0.00s) === RUN TestTrimZeros === RUN TestTrimZeros/#00 === RUN TestTrimZeros/2 === RUN TestTrimZeros/2.0 === RUN TestTrimZeros/2.000000000000 === RUN TestTrimZeros/2000000000000 === RUN TestTrimZeros/2000000 --- PASS: TestTrimZeros (0.00s) --- PASS: TestTrimZeros/#00 (0.00s) --- PASS: TestTrimZeros/2 (0.00s) --- PASS: TestTrimZeros/2.0 (0.00s) --- PASS: TestTrimZeros/2.000000000000 (0.00s) --- PASS: TestTrimZeros/2000000000000 (0.00s) --- PASS: TestTrimZeros/2000000 (0.00s) === RUN TestReferencePath === RUN TestReferencePath/#00 === RUN TestReferencePath/#01 === RUN TestReferencePath/#02 === RUN TestReferencePath/#03 === RUN TestReferencePath/#04 === RUN TestReferencePath/#05 === RUN TestReferencePath/#06 === RUN TestReferencePath/#07 === RUN TestReferencePath/#08 === RUN TestReferencePath/#09 === RUN TestReferencePath/#10 === RUN TestReferencePath/#11 === RUN TestReferencePath/#12 --- PASS: TestReferencePath (0.06s) --- PASS: TestReferencePath/#00 (0.00s) --- PASS: TestReferencePath/#01 (0.00s) --- PASS: TestReferencePath/#02 (0.00s) --- PASS: TestReferencePath/#03 (0.00s) --- PASS: TestReferencePath/#04 (0.00s) --- PASS: TestReferencePath/#05 (0.00s) --- PASS: TestReferencePath/#06 (0.00s) --- PASS: TestReferencePath/#07 (0.00s) --- PASS: TestReferencePath/#08 (0.00s) --- PASS: TestReferencePath/#09 (0.00s) --- PASS: TestReferencePath/#10 (0.00s) --- PASS: TestReferencePath/#11 (0.00s) --- PASS: TestReferencePath/#12 (0.01s) === RUN TestPathCorrection === RUN TestPathCorrection/#00 === RUN TestPathCorrection/#01 === RUN TestPathCorrection/#02 === RUN TestPathCorrection/#03 === RUN TestPathCorrection/#04 === RUN TestPathCorrection/#05 === RUN TestPathCorrection/#06 === RUN TestPathCorrection/#07 === RUN TestPathCorrection/#08 === RUN TestPathCorrection/#09 === RUN TestPathCorrection/#10 --- PASS: TestPathCorrection (0.03s) --- PASS: TestPathCorrection/#00 (0.00s) --- PASS: TestPathCorrection/#01 (0.00s) --- PASS: TestPathCorrection/#02 (0.00s) --- PASS: TestPathCorrection/#03 (0.00s) --- PASS: TestPathCorrection/#04 (0.00s) --- PASS: TestPathCorrection/#05 (0.00s) --- PASS: TestPathCorrection/#06 (0.00s) --- PASS: TestPathCorrection/#07 (0.00s) --- PASS: TestPathCorrection/#08 (0.00s) --- PASS: TestPathCorrection/#09 (0.01s) --- PASS: TestPathCorrection/#10 (0.00s) === RUN TestExpr === RUN TestExpr/v:_3 === RUN TestExpr/v:_3_+_4 === RUN TestExpr/v:_!a,_a:_bool === RUN TestExpr/v:_!a,_a:_3 === RUN TestExpr/v:_1_|_2_|_3_|_*4 === RUN TestExpr/v:_2_&_5 === RUN TestExpr/v:_2_|_5 === RUN TestExpr/v:_2_&&_5 === RUN TestExpr/v:_2_||_5 === RUN TestExpr/v:_2_==_5 === RUN TestExpr/v:_!b,_b:_true === RUN TestExpr/v:_2_!=_5 === RUN TestExpr/v:_<5 === RUN TestExpr/v:_2_<=_5 === RUN TestExpr/v:_2_>_5 === RUN TestExpr/v:_2_>=_5 === RUN TestExpr/v:_2_=~_5 === RUN TestExpr/v:_2_!~_5 === RUN TestExpr/v:_2_+_5 === RUN TestExpr/v:_2_-_5 === RUN TestExpr/v:_2_*_5 === RUN TestExpr/v:_2_/_5 === RUN TestExpr/v:_2_quo_5 === RUN TestExpr/v:_2_rem_5 === RUN TestExpr/v:_2_div_5 === RUN TestExpr/v:_2_mod_5 === RUN TestExpr/v:_a.b,_a:_b:_4 === RUN TestExpr/v:_a["b"],_a:_b:_3_ === RUN TestExpr/v:_a[2:5],_a:_[1,_2,_3,_4,_5] === RUN TestExpr/v:_len([]) === RUN TestExpr/v:_a.b,_a:_{_b:_string_} === RUN TestExpr/v:_"Hello,_\(x)!_Welcome_to_\(place)",_place:_string,_x:_string === RUN TestExpr/v:_{_a,_#b:_1_},_a:_2 === RUN TestExpr/v:_{_a,_b:_1_},_a:_2 === RUN TestExpr/v:_{_"foo",_#def:_1_} === RUN TestExpr/v:_{_{}_|_{_a:_#A,_b:_#B},_#A:_{}_|_{_c:_int}_},_#B:_int_|_bool === RUN TestExpr/v:_{_{c:_a},_b:_a_},_a:_int === RUN TestExpr/v:_[...number]_|_*[1,_2,_3] === RUN TestExpr/v:_or([1,_2,_3]) === RUN TestExpr/v:_and([1,_2,_3]) --- PASS: TestExpr (0.10s) --- PASS: TestExpr/v:_3 (0.00s) --- PASS: TestExpr/v:_3_+_4 (0.00s) --- PASS: TestExpr/v:_!a,_a:_bool (0.00s) --- PASS: TestExpr/v:_!a,_a:_3 (0.00s) --- PASS: TestExpr/v:_1_|_2_|_3_|_*4 (0.01s) --- PASS: TestExpr/v:_2_&_5 (0.00s) --- PASS: TestExpr/v:_2_|_5 (0.00s) --- PASS: TestExpr/v:_2_&&_5 (0.00s) --- PASS: TestExpr/v:_2_||_5 (0.00s) --- PASS: TestExpr/v:_2_==_5 (0.00s) --- PASS: TestExpr/v:_!b,_b:_true (0.00s) --- PASS: TestExpr/v:_2_!=_5 (0.00s) --- PASS: TestExpr/v:_<5 (0.00s) --- PASS: TestExpr/v:_2_<=_5 (0.00s) --- PASS: TestExpr/v:_2_>_5 (0.00s) --- PASS: TestExpr/v:_2_>=_5 (0.00s) --- PASS: TestExpr/v:_2_=~_5 (0.01s) --- PASS: TestExpr/v:_2_!~_5 (0.00s) --- PASS: TestExpr/v:_2_+_5 (0.00s) --- PASS: TestExpr/v:_2_-_5 (0.00s) --- PASS: TestExpr/v:_2_*_5 (0.00s) --- PASS: TestExpr/v:_2_/_5 (0.00s) --- PASS: TestExpr/v:_2_quo_5 (0.00s) --- PASS: TestExpr/v:_2_rem_5 (0.00s) --- PASS: TestExpr/v:_2_div_5 (0.00s) --- PASS: TestExpr/v:_2_mod_5 (0.00s) --- PASS: TestExpr/v:_a.b,_a:_b:_4 (0.00s) --- PASS: TestExpr/v:_a["b"],_a:_b:_3_ (0.00s) --- PASS: TestExpr/v:_a[2:5],_a:_[1,_2,_3,_4,_5] (0.00s) --- PASS: TestExpr/v:_len([]) (0.00s) --- PASS: TestExpr/v:_a.b,_a:_{_b:_string_} (0.00s) --- PASS: TestExpr/v:_"Hello,_\(x)!_Welcome_to_\(place)",_place:_string,_x:_string (0.00s) --- PASS: TestExpr/v:_{_a,_#b:_1_},_a:_2 (0.00s) --- PASS: TestExpr/v:_{_a,_b:_1_},_a:_2 (0.00s) --- PASS: TestExpr/v:_{_"foo",_#def:_1_} (0.00s) --- PASS: TestExpr/v:_{_{}_|_{_a:_#A,_b:_#B},_#A:_{}_|_{_c:_int}_},_#B:_int_|_bool (0.00s) --- PASS: TestExpr/v:_{_{c:_a},_b:_a_},_a:_int (0.00s) --- PASS: TestExpr/v:_[...number]_|_*[1,_2,_3] (0.00s) --- PASS: TestExpr/v:_or([1,_2,_3]) (0.00s) --- PASS: TestExpr/v:_and([1,_2,_3]) (0.00s) === RUN TestBuiltins === RUN TestBuiltins/0 === RUN TestBuiltins/1 === RUN TestBuiltins/2 === RUN TestBuiltins/3 === RUN TestBuiltins/4 === RUN TestBuiltins/5 === RUN TestBuiltins/6 === RUN TestBuiltins/7 === RUN TestBuiltins/8 === RUN TestBuiltins/9 === RUN TestBuiltins/10 === RUN TestBuiltins/11 === RUN TestBuiltins/12 === RUN TestBuiltins/13 === RUN TestBuiltins/14 === RUN TestBuiltins/15 === RUN TestBuiltins/16 === RUN TestBuiltins/17 === RUN TestBuiltins/18 === RUN TestBuiltins/19 === RUN TestBuiltins/20 === RUN TestBuiltins/21 === RUN TestBuiltins/22 === RUN TestBuiltins/23 --- PASS: TestBuiltins (0.16s) --- PASS: TestBuiltins/0 (0.00s) --- PASS: TestBuiltins/1 (0.02s) --- PASS: TestBuiltins/2 (0.00s) --- PASS: TestBuiltins/3 (0.00s) --- PASS: TestBuiltins/4 (0.00s) --- PASS: TestBuiltins/5 (0.00s) --- PASS: TestBuiltins/6 (0.02s) --- PASS: TestBuiltins/7 (0.03s) --- PASS: TestBuiltins/8 (0.00s) --- PASS: TestBuiltins/9 (0.00s) --- PASS: TestBuiltins/10 (0.00s) --- PASS: TestBuiltins/11 (0.00s) --- PASS: TestBuiltins/12 (0.00s) --- PASS: TestBuiltins/13 (0.00s) --- PASS: TestBuiltins/14 (0.00s) --- PASS: TestBuiltins/15 (0.00s) --- PASS: TestBuiltins/16 (0.00s) --- PASS: TestBuiltins/17 (0.04s) --- PASS: TestBuiltins/18 (0.00s) --- PASS: TestBuiltins/19 (0.00s) --- PASS: TestBuiltins/20 (0.00s) --- PASS: TestBuiltins/21 (0.00s) --- PASS: TestBuiltins/22 (0.00s) --- PASS: TestBuiltins/23 (0.00s) === RUN TestSingleBuiltin builtin_test.go:142: error message --- SKIP: TestSingleBuiltin (0.00s) === RUN TestNewList === RUN TestNewList/#00 === RUN TestNewList/#01 === RUN TestNewList/#02 === RUN TestNewList/#03 === RUN TestNewList/#04 === RUN TestNewList/#05 === RUN TestNewList/#06 --- PASS: TestNewList (0.01s) --- PASS: TestNewList/#00 (0.00s) --- PASS: TestNewList/#01 (0.00s) --- PASS: TestNewList/#02 (0.00s) --- PASS: TestNewList/#03 (0.00s) --- PASS: TestNewList/#04 (0.00s) --- PASS: TestNewList/#05 (0.00s) --- PASS: TestNewList/#06 (0.00s) === RUN TestFormat === RUN TestFormat/int/%#v === RUN TestFormat/int/%d === RUN TestFormat/int/%o === RUN TestFormat/int/%O === RUN TestFormat/int/%x === RUN TestFormat/int/%X === RUN TestFormat/int/%q === RUN TestFormat/int/%0.3d === RUN TestFormat/float/%#v === RUN TestFormat/float/%5f === RUN TestFormat/float/%e === RUN TestFormat/float/%08E === RUN TestFormat/float/%g === RUN TestFormat/float/%3G === RUN TestFormat/strings/%v === RUN TestFormat/strings/%s === RUN TestFormat/strings/%x === RUN TestFormat/strings/%X === RUN TestFormat/multiline_string/%#v === RUN TestFormat/multiline_string/%s === RUN TestFormat/multiline_string/%q === RUN TestFormat/multiline_bytes/%#v === RUN TestFormat/multiline_bytes/%s === RUN TestFormat/multiline_bytes/%q === RUN TestFormat/interpolation/%v === RUN TestFormat/interpolation/%#v === RUN TestFormat/interpolation/%+v === RUN TestFormat/indent/%v === RUN TestFormat/indent/%3v === RUN TestFormat/indent/%.1v === RUN TestFormat/indent/%3.1v === RUN TestFormat/imports/%v === RUN TestFormat/imports/%+v === RUN TestFormat/imports/%#v --- PASS: TestFormat (0.07s) --- PASS: TestFormat/int/%#v (0.00s) --- PASS: TestFormat/int/%d (0.00s) --- PASS: TestFormat/int/%o (0.00s) --- PASS: TestFormat/int/%O (0.00s) --- PASS: TestFormat/int/%x (0.00s) --- PASS: TestFormat/int/%X (0.00s) --- PASS: TestFormat/int/%q (0.00s) --- PASS: TestFormat/int/%0.3d (0.00s) --- PASS: TestFormat/float/%#v (0.00s) --- PASS: TestFormat/float/%5f (0.00s) --- PASS: TestFormat/float/%e (0.00s) --- PASS: TestFormat/float/%08E (0.00s) --- PASS: TestFormat/float/%g (0.00s) --- PASS: TestFormat/float/%3G (0.00s) --- PASS: TestFormat/strings/%v (0.00s) --- PASS: TestFormat/strings/%s (0.00s) --- PASS: TestFormat/strings/%x (0.00s) --- PASS: TestFormat/strings/%X (0.00s) --- PASS: TestFormat/multiline_string/%#v (0.00s) --- PASS: TestFormat/multiline_string/%s (0.00s) --- PASS: TestFormat/multiline_string/%q (0.00s) --- PASS: TestFormat/multiline_bytes/%#v (0.00s) --- PASS: TestFormat/multiline_bytes/%s (0.00s) --- PASS: TestFormat/multiline_bytes/%q (0.00s) --- PASS: TestFormat/interpolation/%v (0.01s) --- PASS: TestFormat/interpolation/%#v (0.00s) --- PASS: TestFormat/interpolation/%+v (0.00s) --- PASS: TestFormat/indent/%v (0.00s) --- PASS: TestFormat/indent/%3v (0.00s) --- PASS: TestFormat/indent/%.1v (0.00s) --- PASS: TestFormat/indent/%3.1v (0.00s) --- PASS: TestFormat/imports/%v (0.00s) --- PASS: TestFormat/imports/%+v (0.00s) --- PASS: TestFormat/imports/%#v (0.00s) === RUN TestLookupPath === RUN TestLookupPath/v.x === RUN TestLookupPath/#foo === RUN TestLookupPath/#_foo === RUN TestLookupPath/_#foo === RUN TestLookupPath/#foo#01 === RUN TestLookupPath/a.[_] === RUN TestLookupPath/[_].a === RUN TestLookupPath/b?.a === RUN TestLookupPath/[_] === RUN TestLookupPath/a?.b?.c? === RUN TestLookupPath/a.foo.b.[_] === RUN TestLookupPath/a --- PASS: TestLookupPath (0.02s) --- PASS: TestLookupPath/v.x (0.00s) --- PASS: TestLookupPath/#foo (0.00s) --- PASS: TestLookupPath/#_foo (0.00s) --- PASS: TestLookupPath/_#foo (0.00s) --- PASS: TestLookupPath/#foo#01 (0.00s) --- PASS: TestLookupPath/a.[_] (0.00s) --- PASS: TestLookupPath/[_].a (0.01s) --- PASS: TestLookupPath/b?.a (0.00s) --- PASS: TestLookupPath/[_] (0.00s) --- PASS: TestLookupPath/a?.b?.c? (0.00s) --- PASS: TestLookupPath/a.foo.b.[_] (0.00s) --- PASS: TestLookupPath/a (0.00s) === RUN TestHidden === RUN TestHidden/a === RUN TestHidden/b --- PASS: TestHidden (0.41s) --- PASS: TestHidden/a (0.00s) --- PASS: TestHidden/b (0.00s) === RUN ExampleHid --- PASS: ExampleHid (0.23s) === RUN ExampleValue_Allows --- PASS: ExampleValue_Allows (0.00s) === RUN ExampleValue_Format --- PASS: ExampleValue_Format (0.02s) PASS ok cuelang.org/go/cue 3.324s === RUN TestCommentText --- PASS: TestCommentText (0.00s) === RUN TestPackageName === RUN TestPackageName/#00 === RUN TestPackageName/#01 === RUN TestPackageName/#02 --- PASS: TestPackageName (0.01s) --- PASS: TestPackageName/#00 (0.00s) --- PASS: TestPackageName/#01 (0.00s) --- PASS: TestPackageName/#02 (0.00s) === RUN TestLabelName === RUN TestLabelName/"foo-bar" === RUN TestLabelName/"8ball" === RUN TestLabelName/"foo_bar" === RUN TestLabelName/*bad_identifier* === RUN TestLabelName/*bad_identifier*#01 === RUN TestLabelName/# === RUN TestLabelName/*bad_identifier*#02 === RUN TestLabelName/_# === RUN TestLabelName/_ === RUN TestLabelName/*bad_identifier*#03 === RUN TestLabelName/_hidden === RUN TestLabelName/#A === RUN TestLabelName/#Def === RUN TestLabelName/_#Def === RUN TestLabelName/#_Def === RUN TestLabelName/*bad_identifier*#04 === RUN TestLabelName/*bad_identifier*#05 === RUN TestLabelName/*bad_identifier*#06 === RUN TestLabelName/true === RUN TestLabelName/"foo === RUN TestLabelName/"foo" --- PASS: TestLabelName (0.01s) --- PASS: TestLabelName/"foo-bar" (0.00s) --- PASS: TestLabelName/"8ball" (0.00s) --- PASS: TestLabelName/"foo_bar" (0.00s) --- PASS: TestLabelName/*bad_identifier* (0.00s) --- PASS: TestLabelName/*bad_identifier*#01 (0.00s) --- PASS: TestLabelName/# (0.00s) --- PASS: TestLabelName/*bad_identifier*#02 (0.00s) --- PASS: TestLabelName/_# (0.00s) --- PASS: TestLabelName/_ (0.00s) --- PASS: TestLabelName/*bad_identifier*#03 (0.00s) --- PASS: TestLabelName/_hidden (0.00s) --- PASS: TestLabelName/#A (0.00s) --- PASS: TestLabelName/#Def (0.00s) --- PASS: TestLabelName/_#Def (0.00s) --- PASS: TestLabelName/#_Def (0.00s) --- PASS: TestLabelName/*bad_identifier*#04 (0.00s) --- PASS: TestLabelName/*bad_identifier*#05 (0.00s) --- PASS: TestLabelName/*bad_identifier*#06 (0.00s) --- PASS: TestLabelName/true (0.00s) --- PASS: TestLabelName/"foo (0.00s) --- PASS: TestLabelName/"foo" (0.00s) PASS ok cuelang.org/go/cue/ast 0.247s === RUN TestImportInfo === RUN TestImportInfo/a.b/bar === RUN TestImportInfo/foo/a.b/bar === RUN TestImportInfo/a.b/bar:foo === RUN TestImportInfo/strings --- PASS: TestImportInfo (0.01s) --- PASS: TestImportInfo/a.b/bar (0.00s) --- PASS: TestImportInfo/foo/a.b/bar (0.00s) --- PASS: TestImportInfo/a.b/bar:foo (0.00s) --- PASS: TestImportInfo/strings (0.00s) === RUN TestApply === RUN TestApply/#00 === RUN TestApply/insert_before === RUN TestApply/insert_after === RUN TestApply/insert_after_recursive === RUN TestApply/templates === RUN TestApply/replace === RUN TestApply/delete === RUN TestApply/comments === RUN TestApply/comments_after === RUN TestApply/imports_add === RUN TestApply/imports_add_to === RUN TestApply/imports_duplicate --- PASS: TestApply (0.03s) --- PASS: TestApply/#00 (0.00s) --- PASS: TestApply/insert_before (0.01s) --- PASS: TestApply/insert_after (0.00s) --- PASS: TestApply/insert_after_recursive (0.00s) --- PASS: TestApply/templates (0.00s) --- PASS: TestApply/replace (0.00s) --- PASS: TestApply/delete (0.00s) --- PASS: TestApply/comments (0.00s) --- PASS: TestApply/comments_after (0.00s) --- PASS: TestApply/imports_add (0.00s) --- PASS: TestApply/imports_add_to (0.00s) --- PASS: TestApply/imports_duplicate (0.00s) === RUN TestToFile === RUN TestToFile/add_import === RUN TestToFile/resolve_unresolved_within_struct === RUN TestToFile/unshadow --- PASS: TestToFile (0.03s) --- PASS: TestToFile/add_import (0.02s) --- PASS: TestToFile/resolve_unresolved_within_struct (0.01s) --- PASS: TestToFile/unshadow (0.00s) === RUN TestResolve === RUN TestResolve/resolve/comprehensions === RUN TestResolve/resolve/fieldalias === RUN TestResolve/resolve/labels === RUN TestResolve/resolve/let === RUN TestResolve/resolve/value --- PASS: TestResolve (0.03s) --- PASS: TestResolve/resolve/comprehensions (0.02s) --- PASS: TestResolve/resolve/fieldalias (0.00s) --- PASS: TestResolve/resolve/labels (0.00s) --- PASS: TestResolve/resolve/let (0.00s) --- PASS: TestResolve/resolve/value (0.00s) === RUN TestSanitize === RUN TestSanitize/Take_existing_import_and_rename_it === RUN TestSanitize/Take_existing_import_and_rename_it#01 === RUN TestSanitize/One_import_added,_one_removed === RUN TestSanitize/Rename_duplicate_import === RUN TestSanitize/Rename_duplicate_import,_reuse_and_drop === RUN TestSanitize/Reuse_different_import === RUN TestSanitize/Clear_reference_that_does_not_exist_in_scope === RUN TestSanitize/Unshadow_possible_reference_to_other_file === RUN TestSanitize/Add_alias_to_shadowed_field === RUN TestSanitize/Add_let_clause_to_shadowed_field === RUN TestSanitize/Add_let_clause_to_shadowed_field#01 === RUN TestSanitize/Add_let_clause_to_nested_shadowed_field === RUN TestSanitize/Add_let_clause_to_nested_shadowed_field_with_alias --- PASS: TestSanitize (0.02s) --- PASS: TestSanitize/Take_existing_import_and_rename_it (0.00s) --- PASS: TestSanitize/Take_existing_import_and_rename_it#01 (0.00s) --- PASS: TestSanitize/One_import_added,_one_removed (0.00s) --- PASS: TestSanitize/Rename_duplicate_import (0.00s) --- PASS: TestSanitize/Rename_duplicate_import,_reuse_and_drop (0.00s) --- PASS: TestSanitize/Reuse_different_import (0.00s) --- PASS: TestSanitize/Clear_reference_that_does_not_exist_in_scope (0.00s) --- PASS: TestSanitize/Unshadow_possible_reference_to_other_file (0.00s) --- PASS: TestSanitize/Add_alias_to_shadowed_field (0.00s) --- PASS: TestSanitize/Add_let_clause_to_shadowed_field (0.00s) --- PASS: TestSanitize/Add_let_clause_to_shadowed_field#01 (0.00s) --- PASS: TestSanitize/Add_let_clause_to_nested_shadowed_field (0.00s) --- PASS: TestSanitize/Add_let_clause_to_nested_shadowed_field_with_alias (0.00s) === RUN TestX sanitize_test.go:454: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/cue/ast/astutil 0.501s ? cuelang.org/go/cue/build [no test files] ? cuelang.org/go/cue/cuecontext [no test files] === RUN TestError_Error --- PASS: TestError_Error (0.00s) === RUN TestErrorList_Add --- PASS: TestErrorList_Add (0.00s) === RUN TestErrorList_Reset --- PASS: TestErrorList_Reset (0.00s) === RUN TestErrorList_Len --- PASS: TestErrorList_Len (0.00s) === RUN TestErrorList_Swap --- PASS: TestErrorList_Swap (0.00s) === RUN TestErrorList_Less --- PASS: TestErrorList_Less (0.00s) === RUN TestErrorList_Sort --- PASS: TestErrorList_Sort (0.00s) === RUN TestErrorList_RemoveMultiples --- PASS: TestErrorList_RemoveMultiples (0.00s) === RUN TestErrorList_Error --- PASS: TestErrorList_Error (0.00s) === RUN TestErrorList_Err --- PASS: TestErrorList_Err (0.00s) === RUN TestPrintError --- PASS: TestPrintError (0.00s) PASS ok cuelang.org/go/cue/errors 0.160s === RUN TestFiles === PAUSE TestFiles === RUN TestNodes === RUN TestNodes/old-style_octal_numbers === RUN TestNodes/labels_with_multi-line_strings === RUN TestNodes/foo --- PASS: TestNodes (0.02s) --- PASS: TestNodes/old-style_octal_numbers (0.00s) --- PASS: TestNodes/labels_with_multi-line_strings (0.00s) --- PASS: TestNodes/foo (0.01s) === RUN TestBadNodes --- PASS: TestBadNodes (0.01s) === RUN TestPackage --- PASS: TestPackage (0.00s) === RUN TestSourcePos --- PASS: TestSourcePos (0.01s) === RUN TestDeclLists --- PASS: TestDeclLists (0.00s) === RUN TestIncorrectIdent === RUN TestIncorrectIdent/foo === RUN TestIncorrectIdent/a.b.c === RUN TestIncorrectIdent/for --- PASS: TestIncorrectIdent (0.00s) --- PASS: TestIncorrectIdent/foo (0.00s) --- PASS: TestIncorrectIdent/a.b.c (0.00s) --- PASS: TestIncorrectIdent/for (0.00s) === RUN TestX format_test.go:475: --- SKIP: TestX (0.00s) === RUN TestInvalidAST === RUN TestInvalidAST/label_sequence_for_definition === RUN TestInvalidAST/label_with_invalid_identifier === RUN TestInvalidAST/ImportDecl_without_parens,_but_imports_with_comments --- PASS: TestInvalidAST (0.00s) --- PASS: TestInvalidAST/label_sequence_for_definition (0.00s) --- PASS: TestInvalidAST/label_with_invalid_identifier (0.00s) --- PASS: TestInvalidAST/ImportDecl_without_parens,_but_imports_with_comments (0.00s) === RUN TestErrors === RUN TestErrors/empty_identifier --- PASS: TestErrors (0.00s) --- PASS: TestErrors/empty_identifier (0.00s) === CONT TestFiles === RUN TestFiles/comments.input === PAUSE TestFiles/comments.input === RUN TestFiles/simplify.input === PAUSE TestFiles/simplify.input === RUN TestFiles/expressions.input === PAUSE TestFiles/expressions.input === RUN TestFiles/values.input === PAUSE TestFiles/values.input === RUN TestFiles/imports.input === PAUSE TestFiles/imports.input === CONT TestFiles/values.input === CONT TestFiles/expressions.input === CONT TestFiles/comments.input === CONT TestFiles/simplify.input === CONT TestFiles/imports.input --- PASS: TestFiles (0.00s) --- PASS: TestFiles/imports.input (0.00s) --- PASS: TestFiles/comments.input (0.01s) --- PASS: TestFiles/simplify.input (0.01s) --- PASS: TestFiles/values.input (0.04s) --- PASS: TestFiles/expressions.input (0.05s) PASS ok cuelang.org/go/cue/format 0.299s === RUN TestIndentTabs === RUN TestIndentTabs/#00 === RUN TestIndentTabs/#01 === RUN TestIndentTabs/#02 --- PASS: TestIndentTabs (0.01s) --- PASS: TestIndentTabs/#00 (0.00s) --- PASS: TestIndentTabs/#01 (0.00s) --- PASS: TestIndentTabs/#02 (0.00s) === RUN TestNumbers === RUN TestNumbers/0/"0" === RUN TestNumbers/1/"1" === RUN TestNumbers/2/"-1" === RUN TestNumbers/3/"100_000" === RUN TestNumbers/4/"1." === RUN TestNumbers/5/"0." === RUN TestNumbers/6/".0" === RUN TestNumbers/7/"012.34" === RUN TestNumbers/8/".01" === RUN TestNumbers/9/".01e2" === RUN TestNumbers/10/"0." === RUN TestNumbers/11/"1K" === RUN TestNumbers/12/".5K" === RUN TestNumbers/13/"1Mi" === RUN TestNumbers/14/"1.5Mi" === RUN TestNumbers/15/"1.3G" === RUN TestNumbers/16/"1.3e+20" === RUN TestNumbers/17/"1.3e20" === RUN TestNumbers/18/"1.3e-5" === RUN TestNumbers/19/".3e-1" === RUN TestNumbers/20/"0e-5" === RUN TestNumbers/21/"0E-5" === RUN TestNumbers/22/"5e-5" === RUN TestNumbers/23/"5E-5" === RUN TestNumbers/24/"0x1234" === RUN TestNumbers/25/"0xABCD" === RUN TestNumbers/26/"-0xABCD" === RUN TestNumbers/27/"0b11001000" === RUN TestNumbers/28/"0b1" === RUN TestNumbers/29/"0o755" === RUN TestNumbers/30/"0755" --- PASS: TestNumbers (0.05s) --- PASS: TestNumbers/0/"0" (0.01s) --- PASS: TestNumbers/1/"1" (0.00s) --- PASS: TestNumbers/2/"-1" (0.00s) --- PASS: TestNumbers/3/"100_000" (0.00s) --- PASS: TestNumbers/4/"1." (0.00s) --- PASS: TestNumbers/5/"0." (0.00s) --- PASS: TestNumbers/6/".0" (0.00s) --- PASS: TestNumbers/7/"012.34" (0.00s) --- PASS: TestNumbers/8/".01" (0.00s) --- PASS: TestNumbers/9/".01e2" (0.00s) --- PASS: TestNumbers/10/"0." (0.00s) --- PASS: TestNumbers/11/"1K" (0.00s) --- PASS: TestNumbers/12/".5K" (0.00s) --- PASS: TestNumbers/13/"1Mi" (0.00s) --- PASS: TestNumbers/14/"1.5Mi" (0.00s) --- PASS: TestNumbers/15/"1.3G" (0.00s) --- PASS: TestNumbers/16/"1.3e+20" (0.00s) --- PASS: TestNumbers/17/"1.3e20" (0.00s) --- PASS: TestNumbers/18/"1.3e-5" (0.00s) --- PASS: TestNumbers/19/".3e-1" (0.00s) --- PASS: TestNumbers/20/"0e-5" (0.00s) --- PASS: TestNumbers/21/"0E-5" (0.00s) --- PASS: TestNumbers/22/"5e-5" (0.00s) --- PASS: TestNumbers/23/"5E-5" (0.00s) --- PASS: TestNumbers/24/"0x1234" (0.00s) --- PASS: TestNumbers/25/"0xABCD" (0.00s) --- PASS: TestNumbers/26/"-0xABCD" (0.00s) --- PASS: TestNumbers/27/"0b11001000" (0.00s) --- PASS: TestNumbers/28/"0b1" (0.00s) --- PASS: TestNumbers/29/"0o755" (0.00s) --- PASS: TestNumbers/30/"0755" (0.00s) === RUN TestNumErrors === RUN TestNumErrors/"0x" === RUN TestNumErrors/"0o" === RUN TestNumErrors/"0b" === RUN TestNumErrors/"0_" === RUN TestNumErrors/"0128" === RUN TestNumErrors/"e+100" === RUN TestNumErrors/".p" === RUN TestNumErrors/"" === RUN TestNumErrors/"\"" === RUN TestNumErrors/"\"a" === RUN TestNumErrors/"23.34e" === RUN TestNumErrors/"23.34e33pp" --- PASS: TestNumErrors (0.00s) --- PASS: TestNumErrors/"0x" (0.00s) --- PASS: TestNumErrors/"0o" (0.00s) --- PASS: TestNumErrors/"0b" (0.00s) --- PASS: TestNumErrors/"0_" (0.00s) --- PASS: TestNumErrors/"0128" (0.00s) --- PASS: TestNumErrors/"e+100" (0.00s) --- PASS: TestNumErrors/".p" (0.00s) --- PASS: TestNumErrors/"" (0.00s) --- PASS: TestNumErrors/"\"" (0.00s) --- PASS: TestNumErrors/"\"a" (0.00s) --- PASS: TestNumErrors/"23.34e" (0.00s) --- PASS: TestNumErrors/"23.34e33pp" (0.00s) === RUN TestQuote === RUN TestQuote/"\x00" === RUN TestQuote/"abc\xffdef" === RUN TestQuote/"abc\xffdef"#01 === RUN TestQuote/"abc\xffdef"#02 === RUN TestQuote/"\a\b\f\r\n\t\v" === RUN TestQuote/"\"" === RUN TestQuote/"\\" === RUN TestQuote/"☺" === RUN TestQuote/"\U0010ffff" === RUN TestQuote/"\x04" === RUN TestQuote/"\x04"#01 === RUN TestQuote/"☺"#01 === RUN TestQuote/"☺"#02 === RUN TestQuote/"!\u00a0!\u2000!\u3000!" === RUN TestQuote/"a\nb" === RUN TestQuote/"a\nb"#01 === RUN TestQuote/"a" === RUN TestQuote/"a\n" === RUN TestQuote/"" === RUN TestQuote/"\n" === RUN TestQuote/"\n\n" === RUN TestQuote/"a"#01 === RUN TestQuote/"a\n"#01 === RUN TestQuote/"foo\n\"bar\"" === RUN TestQuote/"foo\n\"\"\"bar\"" === RUN TestQuote/"foo\n\"\"\"\"\"###bar\"" === RUN TestQuote/"foo\n\"\"\"\r\f\\" === RUN TestQuote/"foo'''\nhello" === RUN TestQuote/"foo\n'''\r\f\\" --- PASS: TestQuote (0.01s) --- PASS: TestQuote/"\x00" (0.00s) --- PASS: TestQuote/"abc\xffdef" (0.00s) --- PASS: TestQuote/"abc\xffdef"#01 (0.00s) --- PASS: TestQuote/"abc\xffdef"#02 (0.00s) --- PASS: TestQuote/"\a\b\f\r\n\t\v" (0.00s) --- PASS: TestQuote/"\"" (0.00s) --- PASS: TestQuote/"\\" (0.00s) --- PASS: TestQuote/"☺" (0.00s) --- PASS: TestQuote/"\U0010ffff" (0.00s) --- PASS: TestQuote/"\x04" (0.00s) --- PASS: TestQuote/"\x04"#01 (0.00s) --- PASS: TestQuote/"☺"#01 (0.00s) --- PASS: TestQuote/"☺"#02 (0.00s) --- PASS: TestQuote/"!\u00a0!\u2000!\u3000!" (0.00s) --- PASS: TestQuote/"a\nb" (0.00s) --- PASS: TestQuote/"a\nb"#01 (0.00s) --- PASS: TestQuote/"a" (0.00s) --- PASS: TestQuote/"a\n" (0.00s) --- PASS: TestQuote/"" (0.00s) --- PASS: TestQuote/"\n" (0.00s) --- PASS: TestQuote/"\n\n" (0.00s) --- PASS: TestQuote/"a"#01 (0.00s) --- PASS: TestQuote/"a\n"#01 (0.00s) --- PASS: TestQuote/"foo\n\"bar\"" (0.00s) --- PASS: TestQuote/"foo\n\"\"\"bar\"" (0.00s) --- PASS: TestQuote/"foo\n\"\"\"\"\"###bar\"" (0.00s) --- PASS: TestQuote/"foo\n\"\"\"\r\f\\" (0.00s) --- PASS: TestQuote/"foo'''\nhello" (0.00s) --- PASS: TestQuote/"foo\n'''\r\f\\" (0.00s) === RUN TestAppendEscaped === RUN TestAppendEscaped/a === RUN TestAppendEscaped/#00 === RUN TestAppendEscaped/#01 === RUN TestAppendEscaped/_ === RUN TestAppendEscaped/a_ === RUN TestAppendEscaped/a_b --- PASS: TestAppendEscaped (0.00s) --- PASS: TestAppendEscaped/a (0.00s) --- PASS: TestAppendEscaped/#00 (0.00s) --- PASS: TestAppendEscaped/#01 (0.00s) --- PASS: TestAppendEscaped/_ (0.00s) --- PASS: TestAppendEscaped/a_ (0.00s) --- PASS: TestAppendEscaped/a_b (0.00s) === RUN TestUnquote === RUN TestUnquote/0/"Hello" === RUN TestUnquote/1/'Hello' === RUN TestUnquote/2/'Hellø' === RUN TestUnquote/3/"""___Hello___""" === RUN TestUnquote/4/'''___Hello___''' === RUN TestUnquote/5/'''___Hello____''' === RUN TestUnquote/6/'''____Hello___''' === RUN TestUnquote/7/'''______''' === RUN TestUnquote/8/'''___''' === RUN TestUnquote/9/"""__aaa__bbb__""" === RUN TestUnquote/10/'\a\b\f\n\r\t\v\'\\\/' === RUN TestUnquote/11/"\a\b\f\n\r\t\v\"\\\/" === RUN TestUnquote/12/#"The_sequence_"\U0001F604"_renders_as_\#U0001F604."# === RUN TestUnquote/13/"__\U00010FfF" === RUN TestUnquote/14/"\u0061_" === RUN TestUnquote/15/'\x61\x55' === RUN TestUnquote/16/'\061\055' === RUN TestUnquote/17/'\377_' === RUN TestUnquote/18/'è\n' === RUN TestUnquote/19/'\06\055' === RUN TestUnquote/20/'\0' === RUN TestUnquote/21/"\06\055" === RUN TestUnquote/22/'\777_' === RUN TestUnquote/23/'\U012301' === RUN TestUnquote/24/'\U0123012G' === RUN TestUnquote/25/"\x04" === RUN TestUnquote/26/'\U01230123' === RUN TestUnquote/27/"\uD834\uDD1E" === RUN TestUnquote/28/"\uDD1E\uD834" === RUN TestUnquote/29/"\uD834\uD834" === RUN TestUnquote/30/"\\" === RUN TestUnquote/31/"\'" === RUN TestUnquote/32/"\q" === RUN TestUnquote/33/'_' === RUN TestUnquote/34/'---_---' === RUN TestUnquote/35/'''_''' === RUN TestUnquote/36/#"Hello"# === RUN TestUnquote/37/#"Hello\v"# === RUN TestUnquote/38/#"Hello\#v\r"# === RUN TestUnquote/39/##"Hello\##v\r"## === RUN TestUnquote/40/##"Hello\##v"## === RUN TestUnquote/41/#'''___Hello\#v___'''# === RUN TestUnquote/42/##'''___Hello\#v___'''## === RUN TestUnquote/43/#"""___\#r___"""# === RUN TestUnquote/44/#""# === RUN TestUnquote/45/#"_""# === RUN TestUnquote/46/#"_"""# === RUN TestUnquote/47/##"_"""#_"## === RUN TestUnquote/48/##"_"""#_"## === RUN TestUnquote/49/#"This_is_a_"dog""# === RUN TestUnquote/50/#"""_"_"""# === RUN TestUnquote/51/#"""_"""_"""# === RUN TestUnquote/52/#"""__a__"""# === RUN TestUnquote/53/#"""__a__"""# === RUN TestUnquote/54/#"""____a____"""# === RUN TestUnquote/55/#"""____a____"""# === RUN TestUnquote/56/#"""______a______"""# === RUN TestUnquote/57/#"""__a__"""# === RUN TestUnquote/58/#"""___a___"""# === RUN TestUnquote/59/####"___\"#### === RUN TestUnquote/60/``` === RUN TestUnquote/61/Hello === RUN TestUnquote/62/"Hello === RUN TestUnquote/63/"""Hello""" === RUN TestUnquote/64/'''___Hello____''' === RUN TestUnquote/65/'''____a___b____''' === RUN TestUnquote/66/"Hello"" === RUN TestUnquote/67/#"Hello" === RUN TestUnquote/68/#"Hello'# === RUN TestUnquote/69/#"""_"""# === RUN TestUnquote/70/#"""# --- PASS: TestUnquote (0.01s) --- PASS: TestUnquote/0/"Hello" (0.00s) --- PASS: TestUnquote/1/'Hello' (0.00s) --- PASS: TestUnquote/2/'Hellø' (0.00s) --- PASS: TestUnquote/3/"""___Hello___""" (0.00s) --- PASS: TestUnquote/4/'''___Hello___''' (0.00s) --- PASS: TestUnquote/5/'''___Hello____''' (0.00s) --- PASS: TestUnquote/6/'''____Hello___''' (0.00s) --- PASS: TestUnquote/7/'''______''' (0.00s) --- PASS: TestUnquote/8/'''___''' (0.00s) --- PASS: TestUnquote/9/"""__aaa__bbb__""" (0.00s) --- PASS: TestUnquote/10/'\a\b\f\n\r\t\v\'\\\/' (0.00s) --- PASS: TestUnquote/11/"\a\b\f\n\r\t\v\"\\\/" (0.00s) --- PASS: TestUnquote/12/#"The_sequence_"\U0001F604"_renders_as_\#U0001F604."# (0.00s) --- PASS: TestUnquote/13/"__\U00010FfF" (0.00s) --- PASS: TestUnquote/14/"\u0061_" (0.00s) --- PASS: TestUnquote/15/'\x61\x55' (0.00s) --- PASS: TestUnquote/16/'\061\055' (0.00s) --- PASS: TestUnquote/17/'\377_' (0.00s) --- PASS: TestUnquote/18/'è\n' (0.00s) --- PASS: TestUnquote/19/'\06\055' (0.00s) --- PASS: TestUnquote/20/'\0' (0.00s) --- PASS: TestUnquote/21/"\06\055" (0.00s) --- PASS: TestUnquote/22/'\777_' (0.00s) --- PASS: TestUnquote/23/'\U012301' (0.00s) --- PASS: TestUnquote/24/'\U0123012G' (0.00s) --- PASS: TestUnquote/25/"\x04" (0.00s) --- PASS: TestUnquote/26/'\U01230123' (0.00s) --- PASS: TestUnquote/27/"\uD834\uDD1E" (0.00s) --- PASS: TestUnquote/28/"\uDD1E\uD834" (0.00s) --- PASS: TestUnquote/29/"\uD834\uD834" (0.00s) --- PASS: TestUnquote/30/"\\" (0.00s) --- PASS: TestUnquote/31/"\'" (0.00s) --- PASS: TestUnquote/32/"\q" (0.00s) --- PASS: TestUnquote/33/'_' (0.00s) --- PASS: TestUnquote/34/'---_---' (0.00s) --- PASS: TestUnquote/35/'''_''' (0.00s) --- PASS: TestUnquote/36/#"Hello"# (0.00s) --- PASS: TestUnquote/37/#"Hello\v"# (0.00s) --- PASS: TestUnquote/38/#"Hello\#v\r"# (0.00s) --- PASS: TestUnquote/39/##"Hello\##v\r"## (0.00s) --- PASS: TestUnquote/40/##"Hello\##v"## (0.00s) --- PASS: TestUnquote/41/#'''___Hello\#v___'''# (0.00s) --- PASS: TestUnquote/42/##'''___Hello\#v___'''## (0.00s) --- PASS: TestUnquote/43/#"""___\#r___"""# (0.00s) --- PASS: TestUnquote/44/#""# (0.00s) --- PASS: TestUnquote/45/#"_""# (0.00s) --- PASS: TestUnquote/46/#"_"""# (0.00s) --- PASS: TestUnquote/47/##"_"""#_"## (0.00s) --- PASS: TestUnquote/48/##"_"""#_"## (0.00s) --- PASS: TestUnquote/49/#"This_is_a_"dog""# (0.00s) --- PASS: TestUnquote/50/#"""_"_"""# (0.00s) --- PASS: TestUnquote/51/#"""_"""_"""# (0.00s) --- PASS: TestUnquote/52/#"""__a__"""# (0.00s) --- PASS: TestUnquote/53/#"""__a__"""# (0.00s) --- PASS: TestUnquote/54/#"""____a____"""# (0.00s) --- PASS: TestUnquote/55/#"""____a____"""# (0.00s) --- PASS: TestUnquote/56/#"""______a______"""# (0.00s) --- PASS: TestUnquote/57/#"""__a__"""# (0.00s) --- PASS: TestUnquote/58/#"""___a___"""# (0.00s) --- PASS: TestUnquote/59/####"___\"#### (0.00s) --- PASS: TestUnquote/60/``` (0.00s) --- PASS: TestUnquote/61/Hello (0.00s) --- PASS: TestUnquote/62/"Hello (0.00s) --- PASS: TestUnquote/63/"""Hello""" (0.00s) --- PASS: TestUnquote/64/'''___Hello____''' (0.00s) --- PASS: TestUnquote/65/'''____a___b____''' (0.00s) --- PASS: TestUnquote/66/"Hello"" (0.00s) --- PASS: TestUnquote/67/#"Hello" (0.00s) --- PASS: TestUnquote/68/#"Hello'# (0.00s) --- PASS: TestUnquote/69/#"""_"""# (0.00s) --- PASS: TestUnquote/70/#"""# (0.00s) === RUN TestInterpolation === RUN TestInterpolation/0/""/foo\( === RUN TestInterpolation/1/"""_"""/foo === RUN TestInterpolation/2/#""#/foo\#( === RUN TestInterpolation/3/#""#/foo\( === RUN TestInterpolation/4/""/foo\(bar === RUN TestInterpolation/5/""/ === RUN TestInterpolation/6/#""#/" === RUN TestInterpolation/7/#""#/\ === RUN TestInterpolation/8/##""##/\' --- PASS: TestInterpolation (0.00s) --- PASS: TestInterpolation/0/""/foo\( (0.00s) --- PASS: TestInterpolation/1/"""_"""/foo (0.00s) --- PASS: TestInterpolation/2/#""#/foo\#( (0.00s) --- PASS: TestInterpolation/3/#""#/foo\( (0.00s) --- PASS: TestInterpolation/4/""/foo\(bar (0.00s) --- PASS: TestInterpolation/5/""/ (0.00s) --- PASS: TestInterpolation/6/#""#/" (0.00s) --- PASS: TestInterpolation/7/#""#/\ (0.00s) --- PASS: TestInterpolation/8/##""##/\' (0.00s) === RUN TestIsDouble === RUN TestIsDouble/0/"" === RUN TestIsDouble/1/"""_""" === RUN TestIsDouble/2/#""# === RUN TestIsDouble/3/'' === RUN TestIsDouble/4/'''_''' === RUN TestIsDouble/5/#''# --- PASS: TestIsDouble (0.00s) --- PASS: TestIsDouble/0/"" (0.00s) --- PASS: TestIsDouble/1/"""_""" (0.00s) --- PASS: TestIsDouble/2/#""# (0.00s) --- PASS: TestIsDouble/3/'' (0.00s) --- PASS: TestIsDouble/4/'''_''' (0.00s) --- PASS: TestIsDouble/5/#''# (0.00s) PASS ok cuelang.org/go/cue/literal 0.317s === RUN TestEmptyImport --- PASS: TestEmptyImport (0.01s) === RUN TestEmptyFolderImport --- PASS: TestEmptyFolderImport (0.18s) === RUN TestMultiplePackageImport --- PASS: TestMultiplePackageImport (0.19s) === RUN TestLocalDirectory --- PASS: TestLocalDirectory (2.86s) === RUN TestLoad === RUN TestLoad/0/ === RUN TestLoad/1/. === RUN TestLoad/2/./other/... === RUN TestLoad/3/./anon === RUN TestLoad/4/./other === RUN TestLoad/5/./hello === RUN TestLoad/6/example.org/test/hello:test === RUN TestLoad/7/example.org/test/hello:nonexist === RUN TestLoad/8/./anon.cue:./other/anon.cue === RUN TestLoad/9//build/cue/src/cue-0.4.0/cue/load/testdata/anon.cue === RUN TestLoad/10/- === RUN TestLoad/11/non-existing === RUN TestLoad/12/./empty === RUN TestLoad/13/./imports === RUN TestLoad/14/./toolonly === RUN TestLoad/15/./toolonly === RUN TestLoad/16/./tags === RUN TestLoad/17/./tags === RUN TestLoad/18/./tagsbad --- PASS: TestLoad (4.26s) --- PASS: TestLoad/0/ (0.35s) --- PASS: TestLoad/1/. (0.32s) --- PASS: TestLoad/2/./other/... (0.59s) --- PASS: TestLoad/3/./anon (0.09s) --- PASS: TestLoad/4/./other (0.24s) --- PASS: TestLoad/5/./hello (0.50s) --- PASS: TestLoad/6/example.org/test/hello:test (0.41s) --- PASS: TestLoad/7/example.org/test/hello:nonexist (0.13s) --- PASS: TestLoad/8/./anon.cue:./other/anon.cue (0.00s) --- PASS: TestLoad/9//build/cue/src/cue-0.4.0/cue/load/testdata/anon.cue (0.00s) --- PASS: TestLoad/10/- (0.10s) --- PASS: TestLoad/11/non-existing (0.00s) --- PASS: TestLoad/12/./empty (0.04s) --- PASS: TestLoad/13/./imports (0.47s) --- PASS: TestLoad/14/./toolonly (0.19s) --- PASS: TestLoad/15/./toolonly (0.14s) --- PASS: TestLoad/16/./tags (0.25s) --- PASS: TestLoad/17/./tags (0.25s) --- PASS: TestLoad/18/./tagsbad (0.18s) === RUN TestOverlays --- PASS: TestOverlays (1.96s) === RUN TestReadImports --- PASS: TestReadImports (0.00s) === RUN TestReadComments --- PASS: TestReadComments (0.00s) === RUN TestReadFailures --- PASS: TestReadFailures (0.00s) === RUN TestReadFailuresIgnored --- PASS: TestReadFailuresIgnored (0.00s) === RUN TestMatchPattern --- PASS: TestMatchPattern (0.01s) === RUN TestTreeCanMatchPattern --- PASS: TestTreeCanMatchPattern (0.00s) === RUN TestHasPathPrefix --- PASS: TestHasPathPrefix (0.00s) === RUN TestTags === RUN TestTags/#00 === RUN TestTags/#01 === RUN TestTags/#02 === RUN TestTags/#03 --- PASS: TestTags (0.01s) --- PASS: TestTags/#00 (0.00s) --- PASS: TestTags/#01 (0.00s) --- PASS: TestTags/#02 (0.00s) --- PASS: TestTags/#03 (0.00s) PASS ok cuelang.org/go/cue/load 9.832s === RUN TestFuzz === RUN TestFuzz/#00 === RUN TestFuzz/#01 === RUN TestFuzz/#02 --- PASS: TestFuzz (0.02s) --- PASS: TestFuzz/#00 (0.01s) --- PASS: TestFuzz/#01 (0.00s) --- PASS: TestFuzz/#02 (0.00s) === RUN Test_readSource --- PASS: Test_readSource (0.00s) === RUN TestParseFile --- PASS: TestParseFile (0.00s) === RUN TestParseExprFrom --- PASS: TestParseExprFrom (0.00s) === RUN TestParseExprString --- PASS: TestParseExprString (0.00s) === RUN TestParse === RUN TestParse/ellipsis_in_structs === RUN TestParse/empty_file === RUN TestParse/empty_struct === RUN TestParse/empty_structs === RUN TestParse/empty_structs;_elided_comma === RUN TestParse/basic_lits === RUN TestParse/keyword_basic_lits === RUN TestParse/keyword_basic_newline === RUN TestParse/keywords_as_labels === RUN TestParse/keywords_as_alias === RUN TestParse/json === RUN TestParse/json:extra_comma === RUN TestParse/json:simplified === RUN TestParse/attributes === RUN TestParse/not_emitted === RUN TestParse/definition === RUN TestParse/one-line_embedding === RUN TestParse/selectors === RUN TestParse/selectors#01 === RUN TestParse/faulty_bytes_selector === RUN TestParse/faulty_multiline_string_selector === RUN TestParse/expression_embedding === RUN TestParse/ellipsis_in_structs#01 === RUN TestParse/emitted_referencing_non-emitted === RUN TestParse/package_file === RUN TestParse/imports_group === RUN TestParse/imports_single === RUN TestParse/collapsed_fields === RUN TestParse/identifiers === RUN TestParse/empty_fields === RUN TestParse/expressions === RUN TestParse/pseudo_keyword_expressions === RUN TestParse/ranges === RUN TestParse/indices === RUN TestParse/calls === RUN TestParse/lists === RUN TestParse/list_types === RUN TestParse/list_comprehensions === RUN TestParse/field_comprehensions === RUN TestParse/nested_comprehensions === RUN TestParse/let_declaration === RUN TestParse/duplicates_allowed === RUN TestParse/templates === RUN TestParse/value_alias === RUN TestParse/dynamic_labels === RUN TestParse/foo === RUN TestParse/interpolation === RUN TestParse/file_comments === RUN TestParse/line_comments === RUN TestParse/alt_comments === RUN TestParse/expr_comments === RUN TestParse/composit_comments === RUN TestParse/attribute_comments === RUN TestParse/attribute_declarations === RUN TestParse/comprehension_comments === RUN TestParse/let_comments === RUN TestParse/emit_comments === RUN TestParse/composite_comments_2 === RUN TestParse/field_aliasing === RUN TestParse/allow_keyword_in_expression === RUN TestParse/dot_import === RUN TestParse/attributes#01 === RUN TestParse/Issue_#276 === RUN TestParse/struct_comments === RUN TestParse/list_comments === RUN TestParse/call_comments === RUN TestParse/front-style_commas --- PASS: TestParse (0.05s) --- PASS: TestParse/ellipsis_in_structs (0.00s) --- PASS: TestParse/empty_file (0.00s) --- PASS: TestParse/empty_struct (0.00s) --- PASS: TestParse/empty_structs (0.00s) --- PASS: TestParse/empty_structs;_elided_comma (0.00s) --- PASS: TestParse/basic_lits (0.00s) --- PASS: TestParse/keyword_basic_lits (0.00s) --- PASS: TestParse/keyword_basic_newline (0.00s) --- PASS: TestParse/keywords_as_labels (0.00s) --- PASS: TestParse/keywords_as_alias (0.00s) --- PASS: TestParse/json (0.00s) --- PASS: TestParse/json:extra_comma (0.00s) --- PASS: TestParse/json:simplified (0.00s) --- PASS: TestParse/attributes (0.00s) --- PASS: TestParse/not_emitted (0.00s) --- PASS: TestParse/definition (0.00s) --- PASS: TestParse/one-line_embedding (0.00s) --- PASS: TestParse/selectors (0.00s) --- PASS: TestParse/selectors#01 (0.00s) --- PASS: TestParse/faulty_bytes_selector (0.00s) --- PASS: TestParse/faulty_multiline_string_selector (0.00s) --- PASS: TestParse/expression_embedding (0.00s) --- PASS: TestParse/ellipsis_in_structs#01 (0.00s) --- PASS: TestParse/emitted_referencing_non-emitted (0.00s) --- PASS: TestParse/package_file (0.00s) --- PASS: TestParse/imports_group (0.00s) --- PASS: TestParse/imports_single (0.00s) --- PASS: TestParse/collapsed_fields (0.00s) --- PASS: TestParse/identifiers (0.00s) --- PASS: TestParse/empty_fields (0.00s) --- PASS: TestParse/expressions (0.00s) --- PASS: TestParse/pseudo_keyword_expressions (0.00s) --- PASS: TestParse/ranges (0.00s) --- PASS: TestParse/indices (0.00s) --- PASS: TestParse/calls (0.00s) --- PASS: TestParse/lists (0.00s) --- PASS: TestParse/list_types (0.00s) --- PASS: TestParse/list_comprehensions (0.00s) --- PASS: TestParse/field_comprehensions (0.00s) --- PASS: TestParse/nested_comprehensions (0.00s) --- PASS: TestParse/let_declaration (0.00s) --- PASS: TestParse/duplicates_allowed (0.00s) --- PASS: TestParse/templates (0.00s) --- PASS: TestParse/value_alias (0.00s) --- PASS: TestParse/dynamic_labels (0.00s) --- PASS: TestParse/foo (0.00s) --- PASS: TestParse/interpolation (0.00s) --- PASS: TestParse/file_comments (0.00s) --- PASS: TestParse/line_comments (0.00s) --- PASS: TestParse/alt_comments (0.00s) --- PASS: TestParse/expr_comments (0.00s) --- PASS: TestParse/composit_comments (0.00s) --- PASS: TestParse/attribute_comments (0.00s) --- PASS: TestParse/attribute_declarations (0.00s) --- PASS: TestParse/comprehension_comments (0.00s) --- PASS: TestParse/let_comments (0.00s) --- PASS: TestParse/emit_comments (0.00s) --- PASS: TestParse/composite_comments_2 (0.00s) --- PASS: TestParse/field_aliasing (0.00s) --- PASS: TestParse/allow_keyword_in_expression (0.00s) --- PASS: TestParse/dot_import (0.00s) --- PASS: TestParse/attributes#01 (0.00s) --- PASS: TestParse/Issue_#276 (0.00s) --- PASS: TestParse/struct_comments (0.00s) --- PASS: TestParse/list_comments (0.00s) --- PASS: TestParse/call_comments (0.00s) --- PASS: TestParse/front-style_commas (0.00s) === RUN TestStrict === RUN TestStrict/block_comments === RUN TestStrict/space_separator === RUN TestStrict/reserved_identifiers === RUN TestStrict/old-style_definition === RUN TestStrict/old-style_alias_1 === RUN TestStrict/old-style_alias_2 === RUN TestStrict/additional_typed_not_yet_supported --- PASS: TestStrict (0.00s) --- PASS: TestStrict/block_comments (0.00s) --- PASS: TestStrict/space_separator (0.00s) --- PASS: TestStrict/reserved_identifiers (0.00s) --- PASS: TestStrict/old-style_definition (0.00s) --- PASS: TestStrict/old-style_alias_1 (0.00s) --- PASS: TestStrict/old-style_alias_2 (0.00s) --- PASS: TestStrict/additional_typed_not_yet_supported (0.00s) === RUN TestParseExpr --- PASS: TestParseExpr (0.00s) === RUN TestImports === RUN TestImports/"a" === RUN TestImports/#"a"# === RUN TestImports/#"a\b"# === RUN TestImports/#'��'# === RUN TestImports/"\xFFFD" === RUN TestImports/"greek/αβ" === RUN TestImports/"\x00" === RUN TestImports/"a_b" === RUN TestImports/#'�FD'# === RUN TestImports/"" === RUN TestImports/#'a!'# === RUN TestImports/"\x80\x80" === RUN TestImports/#"a_b"# === RUN TestImports/"a/b" === RUN TestImports/"a.b" === RUN TestImports/'m\x61th' === RUN TestImports/'\x00' === RUN TestImports/"\x7f" === RUN TestImports/`\u007f` === RUN TestImports/"a!" === RUN TestImports/"a\\b" === RUN TestImports/"`a`" === RUN TestImports/#'"a"'# --- PASS: TestImports (0.01s) --- PASS: TestImports/"a" (0.00s) --- PASS: TestImports/#"a"# (0.00s) --- PASS: TestImports/#"a\b"# (0.00s) --- PASS: TestImports/#'��'# (0.00s) --- PASS: TestImports/"\xFFFD" (0.00s) --- PASS: TestImports/"greek/αβ" (0.00s) --- PASS: TestImports/"\x00" (0.00s) --- PASS: TestImports/"a_b" (0.00s) --- PASS: TestImports/#'�FD'# (0.00s) --- PASS: TestImports/"" (0.00s) --- PASS: TestImports/#'a!'# (0.00s) --- PASS: TestImports/"\x80\x80" (0.00s) --- PASS: TestImports/#"a_b"# (0.00s) --- PASS: TestImports/"a/b" (0.00s) --- PASS: TestImports/"a.b" (0.00s) --- PASS: TestImports/'m\x61th' (0.00s) --- PASS: TestImports/'\x00' (0.00s) --- PASS: TestImports/"\x7f" (0.00s) --- PASS: TestImports/`\u007f` (0.00s) --- PASS: TestImports/"a!" (0.00s) --- PASS: TestImports/"a\\b" (0.00s) --- PASS: TestImports/"`a`" (0.00s) --- PASS: TestImports/#'"a"'# (0.00s) === RUN TestIncompleteSelection === RUN TestIncompleteSelection/#00 === RUN TestIncompleteSelection/#01 --- PASS: TestIncompleteSelection (0.00s) --- PASS: TestIncompleteSelection/#00 (0.00s) --- PASS: TestIncompleteSelection/#01 (0.00s) === RUN TestX parser_test.go:852: --- SKIP: TestX (0.00s) === RUN TestValid === RUN TestValid/_ === RUN TestValid/{} === RUN TestValid/{_[Name=_]:_foo_} === RUN TestValid/{_a:_3_} --- PASS: TestValid (0.00s) --- PASS: TestValid/_ (0.00s) --- PASS: TestValid/{} (0.00s) --- PASS: TestValid/{_[Name=_]:_foo_} (0.00s) --- PASS: TestValid/{_a:_3_} (0.00s) === RUN ExampleParseFile --- PASS: ExampleParseFile (0.00s) PASS ok cuelang.org/go/cue/parser 0.292s === RUN TestScan --- PASS: TestScan (0.01s) === RUN TestCommas --- PASS: TestCommas (0.00s) === RUN TestRelative --- PASS: TestRelative (0.01s) === RUN TestLineComments --- PASS: TestLineComments (0.00s) === RUN TestInit --- PASS: TestInit (0.00s) === RUN TestScanInterpolation === RUN TestScanInterpolation/tsrc0 === RUN TestScanInterpolation/tsrc1 === RUN TestScanInterpolation/tsrc2 === RUN TestScanInterpolation/tsrc3 === RUN TestScanInterpolation/tsrc4 --- PASS: TestScanInterpolation (0.00s) --- PASS: TestScanInterpolation/tsrc0 (0.00s) --- PASS: TestScanInterpolation/tsrc1 (0.00s) --- PASS: TestScanInterpolation/tsrc2 (0.00s) --- PASS: TestScanInterpolation/tsrc3 (0.00s) --- PASS: TestScanInterpolation/tsrc4 (0.00s) === RUN TestStdErrorHander --- PASS: TestStdErrorHander (0.00s) === RUN TestScanErrors === RUN TestScanErrors/\a === RUN TestScanErrors/^ === RUN TestScanErrors/… === RUN TestScanErrors/_| === RUN TestScanErrors/`foo=bar` === RUN TestScanErrors/`foo_bar` === RUN TestScanErrors/@ === RUN TestScanErrors/@foo === RUN TestScanErrors/@foo( === RUN TestScanErrors/@foo(_ === RUN TestScanErrors/@foo(_""]) === RUN TestScanErrors/@foo(3}) === RUN TestScanErrors/@foo(["")]) === RUN TestScanErrors/@foo("" === RUN TestScanErrors/@foo(aa === RUN TestScanErrors/@foo("\(())") === RUN TestScanErrors/"\8" === RUN TestScanErrors/"\08" === RUN TestScanErrors/"\x" === RUN TestScanErrors/"\x0" === RUN TestScanErrors/"\x0g" === RUN TestScanErrors/"\u" === RUN TestScanErrors/"\u0" === RUN TestScanErrors/"\u00" === RUN TestScanErrors/"\u000" === RUN TestScanErrors/"\u0000" === RUN TestScanErrors/"\U" === RUN TestScanErrors/"\U0" === RUN TestScanErrors/"\U00" === RUN TestScanErrors/"\U000" === RUN TestScanErrors/"\U0000" === RUN TestScanErrors/"\U00000" === RUN TestScanErrors/"\U000000" === RUN TestScanErrors/"\U0000000" === RUN TestScanErrors/"\U00000000" === RUN TestScanErrors/"\Uffffffff" === RUN TestScanErrors/' === RUN TestScanErrors/"" === RUN TestScanErrors/"abc === RUN TestScanErrors/""abc === RUN TestScanErrors/"""_abc === RUN TestScanErrors/'''_abc === RUN TestScanErrors/"abc_ === RUN TestScanErrors/"abc____ === RUN TestScanErrors/"abc_____ === RUN TestScanErrors/#"" === RUN TestScanErrors/#""" === RUN TestScanErrors/#""# === RUN TestScanErrors/#' === RUN TestScanErrors/'' === RUN TestScanErrors/'#01 === RUN TestScanErrors/"\(" === RUN TestScanErrors/#"\("# === RUN TestScanErrors/#"\#("# === RUN TestScanErrors/"\q" === RUN TestScanErrors/#"\q"# === RUN TestScanErrors/#"\#q"# === RUN TestScanErrors/0 === RUN TestScanErrors/077 === RUN TestScanErrors/078. === RUN TestScanErrors/07801234567. === RUN TestScanErrors/078e0 === RUN TestScanErrors/078 === RUN TestScanErrors/07800000009 === RUN TestScanErrors/0x === RUN TestScanErrors/0X === RUN TestScanErrors/0Xbeef_ === RUN TestScanErrors/0Xbeef__beef === RUN TestScanErrors/0b === RUN TestScanErrors/0o === RUN TestScanErrors/"abc\x00def" === RUN TestScanErrors/"abc�def" === RUN TestScanErrors/\ufeff\ufeff === RUN TestScanErrors///\ufeff === RUN TestScanErrors/"abc\ufeffdef" --- PASS: TestScanErrors (0.02s) --- PASS: TestScanErrors/\a (0.00s) --- PASS: TestScanErrors/^ (0.00s) --- PASS: TestScanErrors/… (0.00s) --- PASS: TestScanErrors/_| (0.00s) --- PASS: TestScanErrors/`foo=bar` (0.00s) --- PASS: TestScanErrors/`foo_bar` (0.00s) --- PASS: TestScanErrors/@ (0.00s) --- PASS: TestScanErrors/@foo (0.00s) --- PASS: TestScanErrors/@foo( (0.00s) --- PASS: TestScanErrors/@foo(_ (0.00s) --- PASS: TestScanErrors/@foo(_""]) (0.00s) --- PASS: TestScanErrors/@foo(3}) (0.00s) --- PASS: TestScanErrors/@foo(["")]) (0.00s) --- PASS: TestScanErrors/@foo("" (0.00s) --- PASS: TestScanErrors/@foo(aa (0.00s) --- PASS: TestScanErrors/@foo("\(())") (0.00s) --- PASS: TestScanErrors/"\8" (0.00s) --- PASS: TestScanErrors/"\08" (0.00s) --- PASS: TestScanErrors/"\x" (0.00s) --- PASS: TestScanErrors/"\x0" (0.00s) --- PASS: TestScanErrors/"\x0g" (0.00s) --- PASS: TestScanErrors/"\u" (0.00s) --- PASS: TestScanErrors/"\u0" (0.00s) --- PASS: TestScanErrors/"\u00" (0.00s) --- PASS: TestScanErrors/"\u000" (0.00s) --- PASS: TestScanErrors/"\u0000" (0.00s) --- PASS: TestScanErrors/"\U" (0.00s) --- PASS: TestScanErrors/"\U0" (0.00s) --- PASS: TestScanErrors/"\U00" (0.00s) --- PASS: TestScanErrors/"\U000" (0.00s) --- PASS: TestScanErrors/"\U0000" (0.00s) --- PASS: TestScanErrors/"\U00000" (0.00s) --- PASS: TestScanErrors/"\U000000" (0.00s) --- PASS: TestScanErrors/"\U0000000" (0.00s) --- PASS: TestScanErrors/"\U00000000" (0.00s) --- PASS: TestScanErrors/"\Uffffffff" (0.00s) --- PASS: TestScanErrors/' (0.00s) --- PASS: TestScanErrors/"" (0.00s) --- PASS: TestScanErrors/"abc (0.00s) --- PASS: TestScanErrors/""abc (0.00s) --- PASS: TestScanErrors/"""_abc (0.00s) --- PASS: TestScanErrors/'''_abc (0.00s) --- PASS: TestScanErrors/"abc_ (0.00s) --- PASS: TestScanErrors/"abc____ (0.00s) --- PASS: TestScanErrors/"abc_____ (0.00s) --- PASS: TestScanErrors/#"" (0.00s) --- PASS: TestScanErrors/#""" (0.00s) --- PASS: TestScanErrors/#""# (0.00s) --- PASS: TestScanErrors/#' (0.00s) --- PASS: TestScanErrors/'' (0.00s) --- PASS: TestScanErrors/'#01 (0.00s) --- PASS: TestScanErrors/"\(" (0.00s) --- PASS: TestScanErrors/#"\("# (0.00s) --- PASS: TestScanErrors/#"\#("# (0.00s) --- PASS: TestScanErrors/"\q" (0.00s) --- PASS: TestScanErrors/#"\q"# (0.00s) --- PASS: TestScanErrors/#"\#q"# (0.00s) --- PASS: TestScanErrors/0 (0.00s) --- PASS: TestScanErrors/077 (0.00s) --- PASS: TestScanErrors/078. (0.00s) --- PASS: TestScanErrors/07801234567. (0.00s) --- PASS: TestScanErrors/078e0 (0.00s) --- PASS: TestScanErrors/078 (0.00s) --- PASS: TestScanErrors/07800000009 (0.00s) --- PASS: TestScanErrors/0x (0.00s) --- PASS: TestScanErrors/0X (0.00s) --- PASS: TestScanErrors/0Xbeef_ (0.00s) --- PASS: TestScanErrors/0Xbeef__beef (0.00s) --- PASS: TestScanErrors/0b (0.00s) --- PASS: TestScanErrors/0o (0.00s) --- PASS: TestScanErrors/"abc\x00def" (0.00s) --- PASS: TestScanErrors/"abc�def" (0.00s) --- PASS: TestScanErrors/\ufeff\ufeff (0.00s) --- PASS: TestScanErrors///\ufeff (0.00s) --- PASS: TestScanErrors/"abc\ufeffdef" (0.00s) === RUN TestNoLiteralComments --- PASS: TestNoLiteralComments (0.00s) PASS ok cuelang.org/go/cue/scanner 0.263s === RUN TestNoPos --- PASS: TestNoPos (0.00s) === RUN TestPositions --- PASS: TestPositions (0.07s) === RUN TestLineInfo --- PASS: TestLineInfo (0.00s) === RUN TestPositionFor --- PASS: TestPositionFor (0.00s) PASS ok cuelang.org/go/cue/token 0.268s === RUN TestValidate === RUN TestValidate/Sum === RUN TestValidate/*Sum === RUN TestValidate/*Sum:_incorrect_sum === RUN TestValidate/*Sum:_field_C_is_too_low === RUN TestValidate/*Sum:_nil_value === RUN TestValidate/string_list === RUN TestValidate/string_list_incompatible_lengths --- PASS: TestValidate (0.09s) --- PASS: TestValidate/Sum (0.03s) --- PASS: TestValidate/*Sum (0.01s) --- PASS: TestValidate/*Sum:_incorrect_sum (0.01s) --- PASS: TestValidate/*Sum:_field_C_is_too_low (0.00s) --- PASS: TestValidate/*Sum:_nil_value (0.00s) --- PASS: TestValidate/string_list (0.01s) --- PASS: TestValidate/string_list_incompatible_lengths (0.01s) === RUN TestUpdate === RUN TestUpdate/*Sum === RUN TestUpdate/*Sum#01 === RUN TestUpdate/*sump === RUN TestUpdate/*Sum:_backwards === RUN TestUpdate/*Sum:_sum_too_low === RUN TestUpdate/*Sum:_sum_underspecified === RUN TestUpdate/Sum:_cannot_modify === RUN TestUpdate/*Sum:_cannot_update_nil_value === RUN TestUpdate/cannot_modify_slice === RUN TestUpdate/composite_values_update === RUN TestUpdate/composite_values_update_with_unsatisfied_map_constraints === RUN TestUpdate/composite_values_update_with_map_constraints --- PASS: TestUpdate (0.08s) --- PASS: TestUpdate/*Sum (0.01s) --- PASS: TestUpdate/*Sum#01 (0.00s) --- PASS: TestUpdate/*sump (0.00s) --- PASS: TestUpdate/*Sum:_backwards (0.00s) --- PASS: TestUpdate/*Sum:_sum_too_low (0.00s) --- PASS: TestUpdate/*Sum:_sum_underspecified (0.00s) --- PASS: TestUpdate/Sum:_cannot_modify (0.00s) --- PASS: TestUpdate/*Sum:_cannot_update_nil_value (0.00s) --- PASS: TestUpdate/cannot_modify_slice (0.00s) --- PASS: TestUpdate/composite_values_update (0.01s) --- PASS: TestUpdate/composite_values_update_with_unsatisfied_map_constraints (0.01s) --- PASS: TestUpdate/composite_values_update_with_map_constraints (0.01s) === RUN ExampleComplete_structTag --- PASS: ExampleComplete_structTag (0.01s) === RUN ExampleConstrain --- PASS: ExampleConstrain (0.01s) PASS ok cuelang.org/go/cuego 0.467s === RUN TestLatest === RUN TestLatest/0_intro/10_json.txt/frontmatter.toml === RUN TestLatest/0_intro/10_json.txt/text.md === RUN TestLatest/0_intro/10_json.txt/json.cue === RUN TestLatest/0_intro/10_json.txt/expect-stdout-cue === RUN TestLatest/0_intro/20_cue.txt/frontmatter.toml === RUN TestLatest/0_intro/20_cue.txt/text.md === RUN TestLatest/0_intro/30_duplicates.txt/frontmatter.toml === RUN TestLatest/0_intro/30_duplicates.txt/text.md === RUN TestLatest/0_intro/30_duplicates.txt/dup.cue === RUN TestLatest/0_intro/30_duplicates.txt/expect-stdout-cue === RUN TestLatest/0_intro/40_constraints.txt/frontmatter.toml === RUN TestLatest/0_intro/40_constraints.txt/text.md === RUN TestLatest/0_intro/40_constraints.txt/check.cue === RUN TestLatest/0_intro/40_constraints.txt/expect-stdout-cue === RUN TestLatest/0_intro/43_schema.txt/frontmatter.toml === RUN TestLatest/0_intro/43_schema.txt/text.md === RUN TestLatest/0_intro/43_schema.txt/schema.cue === RUN TestLatest/0_intro/43_schema.txt/expect-stdout-cue === RUN TestLatest/0_intro/47_validation.txt/frontmatter.toml === RUN TestLatest/0_intro/47_validation.txt/text.md === RUN TestLatest/0_intro/47_validation.txt/schema.cue === RUN TestLatest/0_intro/47_validation.txt/data.yaml === RUN TestLatest/0_intro/47_validation.txt/expect-stderr === RUN TestLatest/0_intro/50_order.txt/frontmatter.toml === RUN TestLatest/0_intro/50_order.txt/text.md === RUN TestLatest/0_intro/50_order.txt/order.cue === RUN TestLatest/0_intro/50_order.txt/expect-stdout-cue === RUN TestLatest/0_intro/55_fold.txt/frontmatter.toml === RUN TestLatest/0_intro/55_fold.txt/text.md === RUN TestLatest/0_intro/55_fold.txt/fold.cue === RUN TestLatest/0_intro/55_fold.txt/expect-stdout-cue === RUN TestLatest/0_intro/80_boilerplate.txt/frontmatter.toml === RUN TestLatest/0_intro/80_boilerplate.txt/text.md === RUN TestLatest/2_types/05_types.txt/frontmatter.toml === RUN TestLatest/2_types/05_types.txt/text.md === RUN TestLatest/2_types/05_types.txt/types.cue === RUN TestLatest/2_types/05_types.txt/expect-stdout-cue === RUN TestLatest/2_types/20_bottom.txt/frontmatter.toml === RUN TestLatest/2_types/20_bottom.txt/text.md === RUN TestLatest/2_types/20_bottom.txt/bottom.cue === RUN TestLatest/2_types/20_bottom.txt/expect-stdout-cue === RUN TestLatest/2_types/30_numbers.txt/frontmatter.toml === RUN TestLatest/2_types/30_numbers.txt/text.md === RUN TestLatest/2_types/30_numbers.txt/numbers.cue === RUN TestLatest/2_types/30_numbers.txt/expect-stdout-cue === RUN TestLatest/2_types/40_stringlit.txt/frontmatter.toml === RUN TestLatest/2_types/40_stringlit.txt/text.md === RUN TestLatest/2_types/40_stringlit.txt/stringlit.cue === RUN TestLatest/2_types/40_stringlit.txt/expect-stdout-cue === RUN TestLatest/2_types/45_stringraw.txt/frontmatter.toml === RUN TestLatest/2_types/45_stringraw.txt/text.md === RUN TestLatest/2_types/45_stringraw.txt/stringraw.cue === RUN TestLatest/2_types/45_stringraw.txt/expect-stdout-cue === RUN TestLatest/2_types/48_bytes.txt/frontmatter.toml === RUN TestLatest/2_types/48_bytes.txt/text.md === RUN TestLatest/2_types/48_bytes.txt/bytes.cue === RUN TestLatest/2_types/48_bytes.txt/expect-stdout-cue === RUN TestLatest/2_types/50_closed.txt/frontmatter.toml === RUN TestLatest/2_types/50_closed.txt/text.md === RUN TestLatest/2_types/50_closed.txt/structs.cue === RUN TestLatest/2_types/50_closed.txt/expect-stdout-cue === RUN TestLatest/2_types/55_defs.txt/frontmatter.toml === RUN TestLatest/2_types/55_defs.txt/text.md === RUN TestLatest/2_types/55_defs.txt/defs.cue === RUN TestLatest/2_types/55_defs.txt/expect-stdout-cue === RUN TestLatest/2_types/56_optional.txt/frontmatter.toml === RUN TestLatest/2_types/56_optional.txt/text.md === RUN TestLatest/2_types/56_optional.txt/structs.cue === RUN TestLatest/2_types/56_optional.txt/expect-stdout-cue === RUN TestLatest/2_types/60_disjunctions.txt/frontmatter.toml === RUN TestLatest/2_types/60_disjunctions.txt/text.md === RUN TestLatest/2_types/60_disjunctions.txt/disjunctions.cue === RUN TestLatest/2_types/60_disjunctions.txt/expect-stdout-cue === RUN TestLatest/2_types/65_defaults.txt/frontmatter.toml === RUN TestLatest/2_types/65_defaults.txt/text.md === RUN TestLatest/2_types/65_defaults.txt/defaults.cue === RUN TestLatest/2_types/65_defaults.txt/expect-stdout-cue === RUN TestLatest/2_types/65_sumstruct.txt/frontmatter.toml === RUN TestLatest/2_types/65_sumstruct.txt/text.md === RUN TestLatest/2_types/65_sumstruct.txt/sumstruct.cue === RUN TestLatest/2_types/70_bounds.txt/frontmatter.toml === RUN TestLatest/2_types/70_bounds.txt/text.md === RUN TestLatest/2_types/70_bounds.txt/bounds.cue === RUN TestLatest/2_types/70_bounds.txt/expect-stdout-cue === RUN TestLatest/2_types/75_bounddef.txt/frontmatter.toml === RUN TestLatest/2_types/75_bounddef.txt/text.md === RUN TestLatest/2_types/75_bounddef.txt/bound.cue === RUN TestLatest/2_types/75_bounddef.txt/expect-stdout-cue === RUN TestLatest/2_types/80_lists.txt/frontmatter.toml === RUN TestLatest/2_types/80_lists.txt/text.md === RUN TestLatest/2_types/80_lists.txt/lists.cue === RUN TestLatest/2_types/80_lists.txt/expect-stdout-cue === RUN TestLatest/2_types/90_templates.txt/frontmatter.toml === RUN TestLatest/2_types/90_templates.txt/text.md === RUN TestLatest/2_types/90_templates.txt/templates.cue === RUN TestLatest/2_types/90_templates.txt/expect-stdout-cue === RUN TestLatest/4_references/10_scopes.txt/frontmatter.toml === RUN TestLatest/4_references/10_scopes.txt/text.md === RUN TestLatest/4_references/10_scopes.txt/scopes.cue === RUN TestLatest/4_references/10_scopes.txt/expect-stdout-cue === RUN TestLatest/4_references/20_selectors.txt/frontmatter.toml === RUN TestLatest/4_references/20_selectors.txt/text.md === RUN TestLatest/4_references/20_selectors.txt/selectors.cue === RUN TestLatest/4_references/20_selectors.txt/expect-stdout-cue === RUN TestLatest/4_references/30_aliases.txt/frontmatter.toml === RUN TestLatest/4_references/30_aliases.txt/text.md === RUN TestLatest/4_references/30_aliases.txt/alias.cue === RUN TestLatest/4_references/30_aliases.txt/expect-stdout-cue === RUN TestLatest/4_references/50_emit.txt/frontmatter.toml === RUN TestLatest/4_references/50_emit.txt/text.md === RUN TestLatest/4_references/50_emit.txt/emit.cue === RUN TestLatest/4_references/50_emit.txt/expect-stdout-cue === RUN TestLatest/4_references/80_cycle.txt/frontmatter.toml === RUN TestLatest/4_references/80_cycle.txt/text.md === RUN TestLatest/4_references/80_cycle.txt/cycle.cue === RUN TestLatest/4_references/80_cycle.txt/expect-stdout-cue === RUN TestLatest/4_references/85_cycleref.txt/frontmatter.toml === RUN TestLatest/4_references/85_cycleref.txt/text.md === RUN TestLatest/4_references/85_cycleref.txt/cycleref.cue === RUN TestLatest/4_references/85_cycleref.txt/expect-stdout-cue === RUN TestLatest/4_references/99_hidden.txt/frontmatter.toml === RUN TestLatest/4_references/99_hidden.txt/text.md === RUN TestLatest/4_references/99_hidden.txt/hidden.cue === RUN TestLatest/4_references/99_hidden.txt/expect-stdout-cue === RUN TestLatest/6_expressions/10_operators.txt/frontmatter.toml === RUN TestLatest/6_expressions/10_operators.txt/text.md === RUN TestLatest/6_expressions/10_operators.txt/op.cue === RUN TestLatest/6_expressions/10_operators.txt/expect-stdout-cue === RUN TestLatest/6_expressions/20_interpolation.txt/frontmatter.toml === RUN TestLatest/6_expressions/20_interpolation.txt/text.md === RUN TestLatest/6_expressions/20_interpolation.txt/interpolation.cue === RUN TestLatest/6_expressions/20_interpolation.txt/expect-stdout-cue === RUN TestLatest/6_expressions/25_interpolfield.txt/frontmatter.toml === RUN TestLatest/6_expressions/25_interpolfield.txt/text.md === RUN TestLatest/6_expressions/25_interpolfield.txt/genfield.cue === RUN TestLatest/6_expressions/25_interpolfield.txt/expect-stderr === RUN TestLatest/6_expressions/40_listcomp.txt/frontmatter.toml === RUN TestLatest/6_expressions/40_listcomp.txt/text.md === RUN TestLatest/6_expressions/40_listcomp.txt/listcomp.cue === RUN TestLatest/6_expressions/40_listcomp.txt/expect-stdout-cue === RUN TestLatest/6_expressions/50_fieldcomp.txt/frontmatter.toml === RUN TestLatest/6_expressions/50_fieldcomp.txt/text.md === RUN TestLatest/6_expressions/50_fieldcomp.txt/fieldcomp.cue === RUN TestLatest/6_expressions/50_fieldcomp.txt/expect-stdout-cue === RUN TestLatest/6_expressions/55_conditional.txt/frontmatter.toml === RUN TestLatest/6_expressions/55_conditional.txt/text.md === RUN TestLatest/6_expressions/55_conditional.txt/conditional.cue === RUN TestLatest/6_expressions/55_conditional.txt/expect-stdout-cue === RUN TestLatest/6_expressions/70_regexp.txt/frontmatter.toml === RUN TestLatest/6_expressions/70_regexp.txt/text.md === RUN TestLatest/6_expressions/70_regexp.txt/regexp.cue === RUN TestLatest/6_expressions/70_regexp.txt/expect-stdout-cue === RUN TestLatest/6_expressions/80_coalesce.txt/frontmatter.toml === RUN TestLatest/6_expressions/80_coalesce.txt/text.md === RUN TestLatest/6_expressions/80_coalesce.txt/coalesce.cue === RUN TestLatest/6_expressions/80_coalesce.txt/expect-stdout-cue === RUN TestLatest/8_packages/10_packages.txt/frontmatter.toml === RUN TestLatest/8_packages/10_packages.txt/text.md === RUN TestLatest/8_packages/10_packages.txt/a.cue === RUN TestLatest/8_packages/10_packages.txt/b.cue === RUN TestLatest/8_packages/10_packages.txt/expect-stdout-cue === RUN TestLatest/8_packages/30_imports.txt/frontmatter.toml === RUN TestLatest/8_packages/30_imports.txt/text.md === RUN TestLatest/8_packages/30_imports.txt/imports.cue === RUN TestLatest/8_packages/30_imports.txt/expect-stdout-cue --- PASS: TestLatest (0.07s) --- PASS: TestLatest/0_intro/10_json.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/10_json.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/10_json.txt/json.cue (0.00s) --- PASS: TestLatest/0_intro/10_json.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/0_intro/20_cue.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/20_cue.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/30_duplicates.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/30_duplicates.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/30_duplicates.txt/dup.cue (0.00s) --- PASS: TestLatest/0_intro/30_duplicates.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/0_intro/40_constraints.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/40_constraints.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/40_constraints.txt/check.cue (0.00s) --- PASS: TestLatest/0_intro/40_constraints.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/0_intro/43_schema.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/43_schema.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/43_schema.txt/schema.cue (0.00s) --- PASS: TestLatest/0_intro/43_schema.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/0_intro/47_validation.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/47_validation.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/47_validation.txt/schema.cue (0.00s) --- PASS: TestLatest/0_intro/47_validation.txt/data.yaml (0.00s) --- PASS: TestLatest/0_intro/47_validation.txt/expect-stderr (0.00s) --- PASS: TestLatest/0_intro/50_order.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/50_order.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/50_order.txt/order.cue (0.00s) --- PASS: TestLatest/0_intro/50_order.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/0_intro/55_fold.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/55_fold.txt/text.md (0.00s) --- PASS: TestLatest/0_intro/55_fold.txt/fold.cue (0.00s) --- PASS: TestLatest/0_intro/55_fold.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/0_intro/80_boilerplate.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/0_intro/80_boilerplate.txt/text.md (0.00s) --- PASS: TestLatest/2_types/05_types.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/05_types.txt/text.md (0.00s) --- PASS: TestLatest/2_types/05_types.txt/types.cue (0.00s) --- PASS: TestLatest/2_types/05_types.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/20_bottom.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/20_bottom.txt/text.md (0.00s) --- PASS: TestLatest/2_types/20_bottom.txt/bottom.cue (0.00s) --- PASS: TestLatest/2_types/20_bottom.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/30_numbers.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/30_numbers.txt/text.md (0.00s) --- PASS: TestLatest/2_types/30_numbers.txt/numbers.cue (0.00s) --- PASS: TestLatest/2_types/30_numbers.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/40_stringlit.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/40_stringlit.txt/text.md (0.00s) --- PASS: TestLatest/2_types/40_stringlit.txt/stringlit.cue (0.00s) --- PASS: TestLatest/2_types/40_stringlit.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/45_stringraw.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/45_stringraw.txt/text.md (0.00s) --- PASS: TestLatest/2_types/45_stringraw.txt/stringraw.cue (0.00s) --- PASS: TestLatest/2_types/45_stringraw.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/48_bytes.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/48_bytes.txt/text.md (0.00s) --- PASS: TestLatest/2_types/48_bytes.txt/bytes.cue (0.00s) --- PASS: TestLatest/2_types/48_bytes.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/50_closed.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/50_closed.txt/text.md (0.00s) --- PASS: TestLatest/2_types/50_closed.txt/structs.cue (0.00s) --- PASS: TestLatest/2_types/50_closed.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/55_defs.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/55_defs.txt/text.md (0.00s) --- PASS: TestLatest/2_types/55_defs.txt/defs.cue (0.00s) --- PASS: TestLatest/2_types/55_defs.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/56_optional.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/56_optional.txt/text.md (0.00s) --- PASS: TestLatest/2_types/56_optional.txt/structs.cue (0.00s) --- PASS: TestLatest/2_types/56_optional.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/60_disjunctions.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/60_disjunctions.txt/text.md (0.00s) --- PASS: TestLatest/2_types/60_disjunctions.txt/disjunctions.cue (0.00s) --- PASS: TestLatest/2_types/60_disjunctions.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/65_defaults.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/65_defaults.txt/text.md (0.00s) --- PASS: TestLatest/2_types/65_defaults.txt/defaults.cue (0.00s) --- PASS: TestLatest/2_types/65_defaults.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/65_sumstruct.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/65_sumstruct.txt/text.md (0.00s) --- PASS: TestLatest/2_types/65_sumstruct.txt/sumstruct.cue (0.00s) --- PASS: TestLatest/2_types/70_bounds.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/70_bounds.txt/text.md (0.00s) --- PASS: TestLatest/2_types/70_bounds.txt/bounds.cue (0.00s) --- PASS: TestLatest/2_types/70_bounds.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/75_bounddef.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/75_bounddef.txt/text.md (0.00s) --- PASS: TestLatest/2_types/75_bounddef.txt/bound.cue (0.00s) --- PASS: TestLatest/2_types/75_bounddef.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/80_lists.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/80_lists.txt/text.md (0.00s) --- PASS: TestLatest/2_types/80_lists.txt/lists.cue (0.00s) --- PASS: TestLatest/2_types/80_lists.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/2_types/90_templates.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/2_types/90_templates.txt/text.md (0.00s) --- PASS: TestLatest/2_types/90_templates.txt/templates.cue (0.00s) --- PASS: TestLatest/2_types/90_templates.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/10_scopes.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/10_scopes.txt/text.md (0.00s) --- PASS: TestLatest/4_references/10_scopes.txt/scopes.cue (0.00s) --- PASS: TestLatest/4_references/10_scopes.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/20_selectors.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/20_selectors.txt/text.md (0.00s) --- PASS: TestLatest/4_references/20_selectors.txt/selectors.cue (0.00s) --- PASS: TestLatest/4_references/20_selectors.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/30_aliases.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/30_aliases.txt/text.md (0.00s) --- PASS: TestLatest/4_references/30_aliases.txt/alias.cue (0.00s) --- PASS: TestLatest/4_references/30_aliases.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/50_emit.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/50_emit.txt/text.md (0.00s) --- PASS: TestLatest/4_references/50_emit.txt/emit.cue (0.00s) --- PASS: TestLatest/4_references/50_emit.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/80_cycle.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/80_cycle.txt/text.md (0.00s) --- PASS: TestLatest/4_references/80_cycle.txt/cycle.cue (0.00s) --- PASS: TestLatest/4_references/80_cycle.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/85_cycleref.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/85_cycleref.txt/text.md (0.00s) --- PASS: TestLatest/4_references/85_cycleref.txt/cycleref.cue (0.00s) --- PASS: TestLatest/4_references/85_cycleref.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/4_references/99_hidden.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/4_references/99_hidden.txt/text.md (0.00s) --- PASS: TestLatest/4_references/99_hidden.txt/hidden.cue (0.00s) --- PASS: TestLatest/4_references/99_hidden.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/10_operators.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/10_operators.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/10_operators.txt/op.cue (0.00s) --- PASS: TestLatest/6_expressions/10_operators.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/20_interpolation.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/20_interpolation.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/20_interpolation.txt/interpolation.cue (0.00s) --- PASS: TestLatest/6_expressions/20_interpolation.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/25_interpolfield.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/25_interpolfield.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/25_interpolfield.txt/genfield.cue (0.00s) --- PASS: TestLatest/6_expressions/25_interpolfield.txt/expect-stderr (0.00s) --- PASS: TestLatest/6_expressions/40_listcomp.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/40_listcomp.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/40_listcomp.txt/listcomp.cue (0.00s) --- PASS: TestLatest/6_expressions/40_listcomp.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/50_fieldcomp.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/50_fieldcomp.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/50_fieldcomp.txt/fieldcomp.cue (0.00s) --- PASS: TestLatest/6_expressions/50_fieldcomp.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/55_conditional.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/55_conditional.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/55_conditional.txt/conditional.cue (0.00s) --- PASS: TestLatest/6_expressions/55_conditional.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/70_regexp.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/70_regexp.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/70_regexp.txt/regexp.cue (0.00s) --- PASS: TestLatest/6_expressions/70_regexp.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/6_expressions/80_coalesce.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/6_expressions/80_coalesce.txt/text.md (0.00s) --- PASS: TestLatest/6_expressions/80_coalesce.txt/coalesce.cue (0.00s) --- PASS: TestLatest/6_expressions/80_coalesce.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/8_packages/10_packages.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/8_packages/10_packages.txt/text.md (0.00s) --- PASS: TestLatest/8_packages/10_packages.txt/a.cue (0.00s) --- PASS: TestLatest/8_packages/10_packages.txt/b.cue (0.00s) --- PASS: TestLatest/8_packages/10_packages.txt/expect-stdout-cue (0.00s) --- PASS: TestLatest/8_packages/30_imports.txt/frontmatter.toml (0.00s) --- PASS: TestLatest/8_packages/30_imports.txt/text.md (0.00s) --- PASS: TestLatest/8_packages/30_imports.txt/imports.cue (0.00s) --- PASS: TestLatest/8_packages/30_imports.txt/expect-stdout-cue (0.00s) === RUN TestScript --- PASS: TestScript (0.00s) PASS ok cuelang.org/go/doc/tutorial/basics 0.420s === RUN TestTutorial tut_test.go:353: Executing command: cue mod init tut_test.go:357: Args: ["mod" "init"] tut_test.go:98: Changed to directory: /tmp/tutorial4011640380/services tut_test.go:120: $ tree ./original | head tut_test.go:120: $ cp -a original tmp tut_test.go:120: $ cd tmp tut_test.go:120: $ cue mod init tut_test.go:120: $ go mod init example.com tut_test.go:327: Executing command: go mod init example.com tut_test.go:201: go: creating new go.mod: module example.com go: to add module requirements and sums: go mod tidy tut_test.go:120: $ cd services tut_test.go:120: $ cue import ./... tut_test.go:353: Executing command: cue import ./... tut_test.go:357: Args: ["import" "./..."] path, list, or files flag needed to handle multiple objects in file ./services/frontend/bartender/kube.yaml tut_test.go:382: Execution failed: terminating because of errors tut_test.go:120: $ cue import ./... -p kube tut_test.go:353: Executing command: cue import ./... -p kube tut_test.go:357: Args: ["import" "./..." "-p" "kube"] path, list, or files flag needed to handle multiple objects in file ./services/frontend/bartender/kube.yaml tut_test.go:382: Execution failed: terminating because of errors tut_test.go:120: $ cue import ./... -p kube -l 'strings.ToCamel(kind)' -l metadata.name -f tut_test.go:353: Executing command: cue import ./... -p kube -l 'strings.ToCamel(kind)' -l metadata.name -f tut_test.go:357: Args: ["import" "./..." "-p" "kube" "-l" "strings.ToCamel(kind)" "-l" "metadata.name" "-f"] tut_test.go:120: $ tree . | head tut_test.go:120: $ cat mon/prometheus/configmap.cue tut_test.go:120: $ cue import ./... -p kube -l 'strings.ToCamel(kind)' -l metadata.name -f -R tut_test.go:353: Executing command: cue import ./... -p kube -l 'strings.ToCamel(kind)' -l metadata.name -f -R tut_test.go:357: Args: ["import" "./..." "-p" "kube" "-l" "strings.ToCamel(kind)" "-l" "metadata.name" "-f" "-R"] tut_test.go:120: $ cat mon/prometheus/configmap.cue tut_test.go:120: $ cue eval ./mon/prometheus -e configMap.prometheus tut_test.go:353: Executing command: cue eval ./mon/prometheus -e configMap.prometheus tut_test.go:357: Args: ["eval" "./mon/prometheus" "-e" "configMap.prometheus"] apiVersion: "v1" kind: "ConfigMap" metadata: { name: "prometheus" } data: { "alert.rules": """ groups: - name: rules.yaml rules: - alert: InstanceDown expr: up == 0 for: 30s labels: severity: page annotations: description: '{{$labels.app}} of job {{ $labels.job }} has been down for more than 30 seconds.' summary: Instance {{$labels.app}} down - alert: InsufficientPeers expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) for: 3m labels: severity: page annotations: description: If one more etcd peer goes down the cluster will be unavailable summary: etcd cluster small - alert: EtcdNoMaster expr: sum(etcd_server_has_leader{app="etcd"}) == 0 for: 1s labels: severity: page annotations: summary: No ETCD master elected. - alert: PodRestart expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m])) > 2 for: 1m labels: severity: page annotations: description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }} times in 5m.' summary: Pod for {{$labels.container}} restarts too often """ "prometheus.yml": """ global: scrape_interval: 15s rule_files: - /etc/prometheus/alert.rules alerting: alertmanagers: - scheme: http static_configs: - targets: - alertmanager:9093 scrape_configs: - job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https - job_name: kubernetes-nodes scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics - job_name: kubernetes-cadvisor scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme action: replace target_label: __scheme__ regex: (https?) - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port action: replace target_label: __address__ regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name action: replace target_label: kubernetes_name - job_name: kubernetes-services metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: service relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __address__ target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name target_label: kubernetes_name - job_name: kubernetes-ingresses metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: ingress relabel_configs: - source_labels: - __meta_kubernetes_ingress_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __meta_kubernetes_ingress_scheme - __address__ - __meta_kubernetes_ingress_path regex: (.+);(.+);(.+) replacement: ${1}://${2}${3} target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_ingress_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_ingress_name target_label: kubernetes_name - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name """ } tut_test.go:120: $ cue eval -c ./... tut_test.go:353: Executing command: cue eval -c ./... tut_test.go:357: Args: ["eval" "-c" "./..."] service: { bartender: { apiVersion: "v1" kind: "Service" metadata: { name: "bartender" labels: { component: "frontend" app: "bartender" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { component: "frontend" app: "bartender" domain: "prod" } } } } deployment: { bartender: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "bartender" } spec: { replicas: 1 template: { metadata: { labels: { component: "frontend" app: "bartender" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "bartender" image: "gcr.io/myproj/bartender:v0.1.34" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { breaddispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "breaddispatcher" labels: { app: "breaddispatcher" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "breaddispatcher" component: "frontend" domain: "prod" } } } } deployment: { breaddispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "breaddispatcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "breaddispatcher" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "breaddispatcher" image: "gcr.io/myproj/breaddispatcher:v0.3.24" ports: [{ containerPort: 7080 }] args: ["-etcd=etcd:2379", "-event-server=events:7788"] }] } } } } } // --- service: { host: { apiVersion: "v1" kind: "Service" metadata: { name: "host" labels: { app: "host" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "host" component: "frontend" domain: "prod" } } } } deployment: { host: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "host" } spec: { replicas: 2 template: { metadata: { labels: { app: "host" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "host" image: "gcr.io/myproj/host:v0.1.10" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { maitred: { apiVersion: "v1" kind: "Service" metadata: { name: "maitred" labels: { app: "maitred" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "maitred" domain: "prod" } } } } deployment: { maitred: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "maitred" } spec: { replicas: 1 template: { metadata: { labels: { app: "maitred" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "maitred" image: "gcr.io/myproj/maitred:v0.0.4" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { valeter: { apiVersion: "v1" kind: "Service" metadata: { name: "valeter" labels: { component: "frontend" app: "valeter" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "http" }] selector: { app: "valeter" domain: "prod" } } } } deployment: { valeter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "valeter" } spec: { replicas: 1 template: { metadata: { labels: { component: "frontend" app: "valeter" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "valeter" image: "gcr.io/myproj/valeter:v0.0.4" ports: [{ containerPort: 8080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: { waiter: { apiVersion: "v1" kind: "Service" metadata: { name: "waiter" labels: { component: "frontend" app: "waiter" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "waiter" } } } } deployment: { waiter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waiter" } spec: { replicas: 5 template: { metadata: { labels: { component: "frontend" app: "waiter" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "waiter" image: "gcr.io/myproj/waiter:v0.3.0" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { waterdispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "waterdispatcher" labels: { app: "waterdispatcher" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "http" }] selector: { app: "waterdispatcher" component: "frontend" domain: "prod" } } } } deployment: { waterdispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waterdispatcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "waterdispatcher" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "waterdispatcher" image: "gcr.io/myproj/waterdispatcher:v0.0.48" ports: [{ containerPort: 7080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: { download: { apiVersion: "v1" kind: "Service" metadata: { name: "download" labels: { app: "download" component: "infra" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "download" domain: "prod" } } } } deployment: { download: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "download" } spec: { replicas: 1 template: { metadata: { labels: { app: "download" component: "infra" domain: "prod" } } spec: { containers: [{ name: "download" image: "gcr.io/myproj/download:v0.0.2" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { etcd: { apiVersion: "v1" kind: "Service" metadata: { name: "etcd" labels: { app: "etcd" component: "infra" } } spec: { clusterIP: "None" selector: { app: "etcd" } ports: [{ port: 2379 targetPort: 2379 protocol: "TCP" name: "client" }, { port: 2380 targetPort: 2380 protocol: "TCP" name: "peer" }] } } } statefulSet: { etcd: { apiVersion: "apps/v1" kind: "StatefulSet" metadata: { name: "etcd" } spec: { serviceName: "etcd" replicas: 3 template: { metadata: { labels: { app: "etcd" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "2379" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["etcd"] }] } topologyKey: "kubernetes.io/hostname" }] } } terminationGracePeriodSeconds: 10 containers: [{ name: "etcd" image: "quay.io/coreos/etcd:v3.3.10" ports: [{ name: "client" containerPort: 2379 }, { name: "peer" containerPort: 2380 }] livenessProbe: { httpGet: { path: "/health" port: "client" } initialDelaySeconds: 30 } volumeMounts: [{ name: "etcd3" mountPath: "/data" }] env: [{ name: "ETCDCTL_API" value: "3" }, { name: "ETCD_AUTO_COMPACTION_RETENTION" value: "4" }, { name: "NAME" valueFrom: { fieldRef: { fieldPath: "metadata.name" } } }, { name: "IP" valueFrom: { fieldRef: { fieldPath: "status.podIP" } } }] command: ["/usr/local/bin/etcd"] args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"] }] } } volumeClaimTemplates: [{ metadata: { name: "etcd3" annotations: { "volume.alpha.kubernetes.io/storage-class": "default" } } spec: { accessModes: ["ReadWriteOnce"] resources: { requests: { storage: "10Gi" } } } }] } } } // --- service: { events: { apiVersion: "v1" kind: "Service" metadata: { name: "events" labels: { app: "events" component: "infra" domain: "prod" } } spec: { ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "grpc" }] selector: { app: "events" component: "infra" domain: "prod" } } } } deployment: { events: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "events" } spec: { replicas: 2 template: { metadata: { labels: { app: "events" component: "infra" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["events"] }] } topologyKey: "kubernetes.io/hostname" }] } } volumes: [{ name: "secret-volume" secret: { secretName: "biz-secrets" } }] containers: [{ name: "events" image: "gcr.io/myproj/events:v0.1.31" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- deployment: { tasks: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "tasks" } spec: { replicas: 1 template: { metadata: { labels: { app: "tasks" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ name: "tasks" image: "gcr.io/myproj/tasks:v0.2.6" ports: [{ containerPort: 7080 }, { containerPort: 7443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } service: { tasks: { apiVersion: "v1" kind: "Service" metadata: { name: "tasks" labels: { app: "tasks" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "http" }] selector: { app: "tasks" } } } } // --- service: { updater: { apiVersion: "v1" kind: "Service" metadata: { name: "updater" labels: { app: "updater" component: "infra" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "updater" domain: "prod" } } } } deployment: { updater: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "updater" } spec: { replicas: 1 template: { metadata: { labels: { app: "updater" component: "infra" domain: "prod" } } spec: { volumes: [{ name: "secret-updater" secret: { secretName: "updater-secrets" } }] containers: [{ name: "updater" image: "gcr.io/myproj/updater:v0.1.0" volumeMounts: [{ mountPath: "/etc/certs" name: "secret-updater" }] ports: [{ containerPort: 8080 }] args: ["-key=/etc/certs/updater.pem"] }] } } } } } // --- deployment: { watcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "watcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "watcher" component: "infra" domain: "prod" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ name: "watcher" image: "gcr.io/myproj/watcher:v0.1.0" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } service: { watcher: { apiVersion: "v1" kind: "Service" metadata: { name: "watcher" labels: { app: "watcher" component: "infra" domain: "prod" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4." ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "http" }] selector: { app: "watcher" } } } } // --- service: { caller: { apiVersion: "v1" kind: "Service" metadata: { name: "caller" labels: { app: "caller" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "caller" domain: "prod" } } } } deployment: { caller: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "caller" } spec: { replicas: 3 template: { metadata: { labels: { app: "caller" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "ssd-caller" gcePersistentDisk: { pdName: "ssd-caller" fsType: "ext4" } }, { name: "secret-caller" secret: { secretName: "caller-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ name: "caller" image: "gcr.io/myproj/caller:v0.20.14" volumeMounts: [{ name: "ssd-caller" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-caller" readOnly: true }, { mountPath: "/sslcerts" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { dishwasher: { apiVersion: "v1" kind: "Service" metadata: { name: "dishwasher" labels: { app: "dishwasher" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "dishwasher" component: "kitchen" domain: "prod" } } } } deployment: { dishwasher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "dishwasher" } spec: { replicas: 5 template: { metadata: { labels: { app: "dishwasher" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "dishwasher-disk" gcePersistentDisk: { pdName: "dishwasher-disk" fsType: "ext4" } }, { name: "secret-dishwasher" secret: { secretName: "dishwasher-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "dishwasher-secrets" } }] containers: [{ name: "dishwasher" image: "gcr.io/myproj/dishwasher:v0.2.13" volumeMounts: [{ name: "dishwasher-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-dishwasher" readOnly: true }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { expiditer: { apiVersion: "v1" kind: "Service" metadata: { name: "expiditer" labels: { app: "expiditer" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "expiditer" component: "kitchen" domain: "prod" } } } } deployment: { expiditer: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "expiditer" } spec: { replicas: 1 template: { metadata: { labels: { app: "expiditer" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "expiditer-disk" gcePersistentDisk: { pdName: "expiditer-disk" fsType: "ext4" } }, { name: "secret-expiditer" secret: { secretName: "expiditer-secrets" } }] containers: [{ name: "expiditer" image: "gcr.io/myproj/expiditer:v0.5.34" volumeMounts: [{ name: "expiditer-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-expiditer" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { headchef: { apiVersion: "v1" kind: "Service" metadata: { name: "headchef" labels: { app: "headchef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "headchef" component: "kitchen" domain: "prod" } } } } deployment: { headchef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "headchef" } spec: { replicas: 1 template: { metadata: { labels: { app: "headchef" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "headchef-disk" gcePersistentDisk: { pdName: "headchef-disk" fsType: "ext4" } }, { name: "secret-headchef" secret: { secretName: "headchef-secrets" } }] containers: [{ name: "headchef" image: "gcr.io/myproj/headchef:v0.2.16" volumeMounts: [{ name: "headchef-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-headchef" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { linecook: { apiVersion: "v1" kind: "Service" metadata: { name: "linecook" labels: { app: "linecook" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "linecook" component: "kitchen" domain: "prod" } } } } deployment: { linecook: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "linecook" } spec: { replicas: 1 template: { metadata: { labels: { app: "linecook" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "linecook-disk" gcePersistentDisk: { pdName: "linecook-disk" fsType: "ext4" } }, { name: "secret-kitchen" secret: { secretName: "secrets" } }] containers: [{ name: "linecook" image: "gcr.io/myproj/linecook:v0.1.42" volumeMounts: [{ name: "linecook-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-kitchen" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { pastrychef: { apiVersion: "v1" kind: "Service" metadata: { name: "pastrychef" labels: { app: "pastrychef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "pastrychef" component: "kitchen" domain: "prod" } } } } deployment: { pastrychef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "pastrychef" } spec: { replicas: 1 template: { metadata: { labels: { app: "pastrychef" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "pastrychef-disk" gcePersistentDisk: { pdName: "pastrychef-disk" fsType: "ext4" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ name: "pastrychef" image: "gcr.io/myproj/pastrychef:v0.1.15" volumeMounts: [{ name: "pastrychef-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { souschef: { apiVersion: "v1" kind: "Service" metadata: { name: "souschef" labels: { app: "souschef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "souschef" } } } } deployment: { souschef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "souschef" } spec: { replicas: 1 template: { metadata: { labels: { app: "souschef" component: "kitchen" domain: "prod" } } spec: { containers: [{ name: "souschef" image: "gcr.io/myproj/souschef:v0.5.3" ports: [{ containerPort: 8080 }] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- configMap: { alertmanager: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "alertmanager" } data: { "alerts.yaml": """ receivers: - name: pager slack_configs: - channel: '#cloudmon' text: |- {{ range .Alerts }}{{ .Annotations.description }} {{ end }} send_resolved: true route: receiver: pager group_by: - alertname - cluster """ } } } service: { alertmanager: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" "prometheus.io/path": "/metrics" } labels: { name: "alertmanager" } name: "alertmanager" } spec: { selector: { app: "alertmanager" } ports: [{ name: "main" protocol: "TCP" port: 9093 targetPort: 9093 }] } } } deployment: { alertmanager: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "alertmanager" } spec: { replicas: 1 selector: { matchLabels: { app: "alertmanager" } } template: { metadata: { name: "alertmanager" labels: { app: "alertmanager" } } spec: { containers: [{ name: "alertmanager" image: "prom/alertmanager:v0.15.2" args: ["--config.file=/etc/alertmanager/alerts.yaml", "--storage.path=/alertmanager", "--web.external-url=https://alertmanager.example.com"] ports: [{ name: "alertmanager" containerPort: 9093 }] volumeMounts: [{ name: "config-volume" mountPath: "/etc/alertmanager" }, { name: "alertmanager" mountPath: "/alertmanager" }] }] volumes: [{ name: "config-volume" configMap: { name: "alertmanager" } }, { name: "alertmanager" emptyDir: {} }] } } } } } // --- deployment: { grafana: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "grafana" labels: { app: "grafana" component: "mon" } } spec: { replicas: 1 template: { metadata: { labels: { app: "grafana" component: "mon" } } spec: { volumes: [{ name: "grafana-volume" gcePersistentDisk: { pdName: "grafana-volume" fsType: "ext4" } }] containers: [{ image: "grafana/grafana:4.5.2" name: "grafana" ports: [{ containerPort: 8080 }] resources: { limits: { cpu: "100m" memory: "100Mi" } requests: { cpu: "100m" memory: "100Mi" } } env: [{ name: "GF_AUTH_BASIC_ENABLED" value: "false" }, { name: "GF_AUTH_ANONYMOUS_ENABLED" value: "true" }, { name: "GF_AUTH_ANONYMOUS_ORG_ROLE" value: "admin" }] volumeMounts: [{ name: "grafana-volume" mountPath: "/var/lib/grafana" }] }] } } } } } service: { grafana: { apiVersion: "v1" kind: "Service" metadata: { name: "grafana" labels: { app: "grafana" component: "mon" } } spec: { selector: { app: "grafana" component: "mon" } ports: [{ name: "grafana" protocol: "TCP" port: 3000 targetPort: 3000 }] } } } // --- service: { "node-exporter": { apiVersion: "v1" kind: "Service" metadata: { labels: { app: "node-exporter" } annotations: { "prometheus.io/scrape": "true" } name: "node-exporter" } spec: { type: "ClusterIP" clusterIP: "None" ports: [{ name: "metrics" port: 9100 protocol: "TCP" }] selector: { app: "node-exporter" } } } } daemonSet: { "node-exporter": { apiVersion: "apps/v1" kind: "DaemonSet" metadata: { name: "node-exporter" } spec: { template: { metadata: { labels: { app: "node-exporter" } name: "node-exporter" } spec: { hostNetwork: true hostPID: true containers: [{ image: "quay.io/prometheus/node-exporter:v0.16.0" args: ["--path.procfs=/host/proc", "--path.sysfs=/host/sys"] name: "node-exporter" ports: [{ containerPort: 9100 hostPort: 9100 name: "scrape" }] resources: { requests: { memory: "30Mi" cpu: "100m" } limits: { memory: "50Mi" cpu: "200m" } } volumeMounts: [{ name: "proc" readOnly: true mountPath: "/host/proc" }, { name: "sys" readOnly: true mountPath: "/host/sys" }] }] volumes: [{ name: "proc" hostPath: { path: "/proc" } }, { name: "sys" hostPath: { path: "/sys" } }] } } } } } // --- configMap: { prometheus: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "prometheus" } data: { "alert.rules": """ groups: - name: rules.yaml rules: - alert: InstanceDown expr: up == 0 for: 30s labels: severity: page annotations: description: '{{$labels.app}} of job {{ $labels.job }} has been down for more than 30 seconds.' summary: Instance {{$labels.app}} down - alert: InsufficientPeers expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) for: 3m labels: severity: page annotations: description: If one more etcd peer goes down the cluster will be unavailable summary: etcd cluster small - alert: EtcdNoMaster expr: sum(etcd_server_has_leader{app="etcd"}) == 0 for: 1s labels: severity: page annotations: summary: No ETCD master elected. - alert: PodRestart expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m])) > 2 for: 1m labels: severity: page annotations: description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }} times in 5m.' summary: Pod for {{$labels.container}} restarts too often """ "prometheus.yml": """ global: scrape_interval: 15s rule_files: - /etc/prometheus/alert.rules alerting: alertmanagers: - scheme: http static_configs: - targets: - alertmanager:9093 scrape_configs: - job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https - job_name: kubernetes-nodes scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics - job_name: kubernetes-cadvisor scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme action: replace target_label: __scheme__ regex: (https?) - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port action: replace target_label: __address__ regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name action: replace target_label: kubernetes_name - job_name: kubernetes-services metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: service relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __address__ target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name target_label: kubernetes_name - job_name: kubernetes-ingresses metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: ingress relabel_configs: - source_labels: - __meta_kubernetes_ingress_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __meta_kubernetes_ingress_scheme - __address__ - __meta_kubernetes_ingress_path regex: (.+);(.+);(.+) replacement: ${1}://${2}${3} target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_ingress_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_ingress_name target_label: kubernetes_name - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name """ } } } service: { prometheus: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } labels: { name: "prometheus" } name: "prometheus" } spec: { selector: { app: "prometheus" } type: "NodePort" ports: [{ name: "main" protocol: "TCP" port: 9090 nodePort: 30900 }] } } } deployment: { prometheus: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "prometheus" } spec: { replicas: 1 strategy: { rollingUpdate: { maxSurge: 0 maxUnavailable: 1 } type: "RollingUpdate" } selector: { matchLabels: { app: "prometheus" } } template: { metadata: { name: "prometheus" labels: { app: "prometheus" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "prometheus" image: "prom/prometheus:v2.4.3" args: ["--config.file=/etc/prometheus/prometheus.yml", "--web.external-url=https://prometheus.example.com"] ports: [{ name: "web" containerPort: 9090 }] volumeMounts: [{ name: "config-volume" mountPath: "/etc/prometheus" }] }] volumes: [{ name: "config-volume" configMap: { name: "prometheus" } }] } } } } } // --- configMap: { authproxy: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "authproxy" } data: { "authproxy.cfg": """ # Google Auth Proxy Config File ## https://github.com/bitly/google_auth_proxy ## : to listen on for HTTP clients http_address = "0.0.0.0:4180" ## the OAuth Redirect URL. redirect_url = "https://auth.example.com/oauth2/callback" ## the http url(s) of the upstream endpoint. If multiple, routing is based on path upstreams = [ # frontend "http://frontend-waiter:7080/dpr/", "http://frontend-maitred:7080/ui/", "http://frontend-maitred:7080/ui", "http://frontend-maitred:7080/report/", "http://frontend-maitred:7080/report", "http://frontend-maitred:7080/static/", # kitchen "http://kitchen-chef:8080/visit", # infrastructure "http://download:7080/file/", "http://download:7080/archive", "http://tasks:7080/tasks", "http://tasks:7080/tasks/", ] ## pass HTTP Basic Auth, X-Forwarded-User and X-Forwarded-Email information to upstream pass_basic_auth = true request_logging = true ## Google Apps Domains to allow authentication for google_apps_domains = [ "example.com", ] email_domains = [ "example.com", ] ## The Google OAuth Client ID, Secret client_id = "---" client_secret = "---" ## Cookie Settings ## Secret - the seed string for secure cookies ## Domain - optional cookie domain to force cookies to (ie: .yourcompany.com) ## Expire - expire timeframe for cookie cookie_secret = "won't tell you" cookie_domain = ".example.com" cookie_https_only = true """ } } } deployment: { authproxy: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "authproxy" } spec: { replicas: 1 template: { metadata: { labels: { app: "authproxy" domain: "prod" } } spec: { containers: [{ name: "authproxy" image: "skippy/oauth2_proxy:2.0.1" ports: [{ containerPort: 4180 }] args: ["--config=/etc/authproxy/authproxy.cfg"] volumeMounts: [{ name: "config-volume" mountPath: "/etc/authproxy" }] }] volumes: [{ name: "config-volume" configMap: { name: "authproxy" } }] } } } } } service: { authproxy: { apiVersion: "v1" kind: "Service" metadata: { name: "authproxy" labels: { app: "authproxy" domain: "prod" } } spec: { ports: [{ port: 4180 targetPort: 4180 protocol: "TCP" name: "client" }] selector: { app: "authproxy" } } } } // --- deployment: { goget: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "goget" } spec: { replicas: 1 template: { metadata: { labels: { app: "goget" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "goget-secrets" } }] containers: [{ name: "goget" image: "gcr.io/myproj/goget:v0.5.1" ports: [{ containerPort: 7443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } service: { goget: { apiVersion: "v1" kind: "Service" metadata: { name: "goget" labels: { app: "goget" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.5.7" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "https" }] selector: { app: "goget" } } } } // --- configMap: { nginx: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "nginx" } data: { "nginx.conf": """ events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; # needs to be high for some download jobs. keepalive_timeout 400; # proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; error_log /dev/stdout; # Disable POST body size constraints. We often deal with large # files. Especially docker containers may be large. client_max_body_size 0; upstream goget { server localhost:7070; } # Redirect incoming Google Cloud Storage notifications: server { listen 443 ssl; server_name notify.example.com notify2.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://tasks:7080; proxy_connect_timeout 1; } } server { listen 80; listen 443 ssl; server_name x.example.com example.io; location ~ "(/[^/]+)(/.*)?" { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost$1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } location / { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } server { listen 80; server_name www.example.com w.example.com; resolver 8.8.8.8; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$host.default.example.appspot.com/$request_uri; proxy_redirect http://$host.default.example.appspot.com/ /; } } server { # We could add the following line and the connection would still be SSL, # but it doesn't appear to be necessary. Seems saver this way. listen 80; listen 443 default ssl; server_name ~^(?.*)\\.example\\.com$; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://authproxy:4180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } } """ } } } deployment: { nginx: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "nginx" } spec: { replicas: 1 template: { metadata: { labels: { app: "nginx" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "proxy-secrets" } }, { name: "config-volume" configMap: { name: "nginx" } }] containers: [{ name: "nginx" image: "nginx:1.11.10-alpine" ports: [{ containerPort: 80 }, { containerPort: 443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }, { name: "config-volume" mountPath: "/etc/nginx/nginx.conf" subPath: "nginx.conf" }] }] } } } } } service: { nginx: { apiVersion: "v1" kind: "Service" metadata: { name: "nginx" labels: { app: "nginx" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.4.5" ports: [{ port: 80 targetPort: 80 protocol: "TCP" name: "http" }, { port: 443 protocol: "TCP" name: "https" }] selector: { app: "nginx" } } } } tut_test.go:120: $ cp frontend/breaddispatcher/kube.cue . tut_test.go:120: $ cat tut_test.go:120: $ cue eval ./... -c tut_test.go:353: Executing command: cue eval ./... -c tut_test.go:357: Args: ["eval" "./..." "-c"] service: {} deployment: {} // --- service: { bartender: { apiVersion: "v1" kind: "Service" metadata: { name: "bartender" labels: { component: "frontend" app: "bartender" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { component: "frontend" app: "bartender" domain: "prod" } } } } deployment: { bartender: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "bartender" } spec: { replicas: 1 template: { metadata: { labels: { component: "frontend" app: "bartender" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "bartender" image: "gcr.io/myproj/bartender:v0.1.34" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { breaddispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "breaddispatcher" labels: { app: "breaddispatcher" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "breaddispatcher" component: "frontend" domain: "prod" } } } } deployment: { breaddispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "breaddispatcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "breaddispatcher" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "breaddispatcher" image: "gcr.io/myproj/breaddispatcher:v0.3.24" ports: [{ containerPort: 7080 }] args: ["-etcd=etcd:2379", "-event-server=events:7788"] }] } } } } } // --- service: { host: { apiVersion: "v1" kind: "Service" metadata: { name: "host" labels: { app: "host" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "host" component: "frontend" domain: "prod" } } } } deployment: { host: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "host" } spec: { replicas: 2 template: { metadata: { labels: { app: "host" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "host" image: "gcr.io/myproj/host:v0.1.10" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { maitred: { apiVersion: "v1" kind: "Service" metadata: { name: "maitred" labels: { app: "maitred" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "maitred" domain: "prod" component: "frontend" } } } } deployment: { maitred: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "maitred" } spec: { replicas: 1 template: { metadata: { labels: { app: "maitred" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "maitred" image: "gcr.io/myproj/maitred:v0.0.4" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { valeter: { apiVersion: "v1" kind: "Service" metadata: { name: "valeter" labels: { component: "frontend" app: "valeter" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "http" }] selector: { app: "valeter" domain: "prod" component: "frontend" } } } } deployment: { valeter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "valeter" } spec: { replicas: 1 template: { metadata: { labels: { component: "frontend" app: "valeter" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "valeter" image: "gcr.io/myproj/valeter:v0.0.4" ports: [{ containerPort: 8080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: { waiter: { apiVersion: "v1" kind: "Service" metadata: { name: "waiter" labels: { component: "frontend" app: "waiter" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "waiter" component: "frontend" domain: "prod" } } } } deployment: { waiter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waiter" } spec: { replicas: 5 template: { metadata: { labels: { component: "frontend" app: "waiter" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "waiter" image: "gcr.io/myproj/waiter:v0.3.0" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { waterdispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "waterdispatcher" labels: { app: "waterdispatcher" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "http" }] selector: { app: "waterdispatcher" component: "frontend" domain: "prod" } } } } deployment: { waterdispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waterdispatcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "waterdispatcher" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "waterdispatcher" image: "gcr.io/myproj/waterdispatcher:v0.0.48" ports: [{ containerPort: 7080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: { download: { apiVersion: "v1" kind: "Service" metadata: { name: "download" labels: { app: "download" component: "infra" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "download" domain: "prod" component: "infra" } } } } deployment: { download: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "download" } spec: { replicas: 1 template: { metadata: { labels: { app: "download" component: "infra" domain: "prod" } } spec: { containers: [{ name: "download" image: "gcr.io/myproj/download:v0.0.2" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { etcd: { apiVersion: "v1" kind: "Service" metadata: { name: "etcd" labels: { app: "etcd" domain: "prod" component: "infra" } } spec: { clusterIP: "None" selector: { app: "etcd" domain: "prod" component: "infra" } ports: [{ port: 2379 targetPort: 2379 protocol: "TCP" name: "client" }, { port: 2380 targetPort: 2380 protocol: "TCP" name: "peer" }] } } } deployment: {} statefulSet: { etcd: { apiVersion: "apps/v1" kind: "StatefulSet" metadata: { name: "etcd" } spec: { serviceName: "etcd" replicas: 3 template: { metadata: { labels: { app: "etcd" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "2379" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["etcd"] }] } topologyKey: "kubernetes.io/hostname" }] } } terminationGracePeriodSeconds: 10 containers: [{ name: "etcd" image: "quay.io/coreos/etcd:v3.3.10" ports: [{ name: "client" containerPort: 2379 }, { name: "peer" containerPort: 2380 }] livenessProbe: { httpGet: { path: "/health" port: "client" } initialDelaySeconds: 30 } volumeMounts: [{ name: "etcd3" mountPath: "/data" }] env: [{ name: "ETCDCTL_API" value: "3" }, { name: "ETCD_AUTO_COMPACTION_RETENTION" value: "4" }, { name: "NAME" valueFrom: { fieldRef: { fieldPath: "metadata.name" } } }, { name: "IP" valueFrom: { fieldRef: { fieldPath: "status.podIP" } } }] command: ["/usr/local/bin/etcd"] args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"] }] } } volumeClaimTemplates: [{ metadata: { name: "etcd3" annotations: { "volume.alpha.kubernetes.io/storage-class": "default" } } spec: { accessModes: ["ReadWriteOnce"] resources: { requests: { storage: "10Gi" } } } }] } } } // --- service: { events: { apiVersion: "v1" kind: "Service" metadata: { name: "events" labels: { app: "events" component: "infra" domain: "prod" } } spec: { ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "grpc" }] selector: { app: "events" component: "infra" domain: "prod" } } } } deployment: { events: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "events" } spec: { replicas: 2 template: { metadata: { labels: { app: "events" component: "infra" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["events"] }] } topologyKey: "kubernetes.io/hostname" }] } } volumes: [{ name: "secret-volume" secret: { secretName: "biz-secrets" } }] containers: [{ name: "events" image: "gcr.io/myproj/events:v0.1.31" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { tasks: { apiVersion: "v1" kind: "Service" metadata: { name: "tasks" labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "http" }] selector: { app: "tasks" domain: "prod" component: "infra" } } } } deployment: { tasks: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "tasks" } spec: { replicas: 1 template: { metadata: { labels: { app: "tasks" domain: "prod" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ name: "tasks" image: "gcr.io/myproj/tasks:v0.2.6" ports: [{ containerPort: 7080 }, { containerPort: 7443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { updater: { apiVersion: "v1" kind: "Service" metadata: { name: "updater" labels: { app: "updater" component: "infra" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "updater" domain: "prod" component: "infra" } } } } deployment: { updater: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "updater" } spec: { replicas: 1 template: { metadata: { labels: { app: "updater" component: "infra" domain: "prod" } } spec: { volumes: [{ name: "secret-updater" secret: { secretName: "updater-secrets" } }] containers: [{ name: "updater" image: "gcr.io/myproj/updater:v0.1.0" volumeMounts: [{ mountPath: "/etc/certs" name: "secret-updater" }] ports: [{ containerPort: 8080 }] args: ["-key=/etc/certs/updater.pem"] }] } } } } } // --- service: { watcher: { apiVersion: "v1" kind: "Service" metadata: { name: "watcher" labels: { app: "watcher" component: "infra" domain: "prod" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4." ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "http" }] selector: { app: "watcher" component: "infra" domain: "prod" } } } } deployment: { watcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "watcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "watcher" component: "infra" domain: "prod" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ name: "watcher" image: "gcr.io/myproj/watcher:v0.1.0" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { caller: { apiVersion: "v1" kind: "Service" metadata: { name: "caller" labels: { app: "caller" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "caller" domain: "prod" component: "kitchen" } } } } deployment: { caller: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "caller" } spec: { replicas: 3 template: { metadata: { labels: { app: "caller" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "ssd-caller" gcePersistentDisk: { pdName: "ssd-caller" fsType: "ext4" } }, { name: "secret-caller" secret: { secretName: "caller-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ name: "caller" image: "gcr.io/myproj/caller:v0.20.14" volumeMounts: [{ name: "ssd-caller" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-caller" readOnly: true }, { mountPath: "/sslcerts" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { dishwasher: { apiVersion: "v1" kind: "Service" metadata: { name: "dishwasher" labels: { app: "dishwasher" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "dishwasher" component: "kitchen" domain: "prod" } } } } deployment: { dishwasher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "dishwasher" } spec: { replicas: 5 template: { metadata: { labels: { app: "dishwasher" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "dishwasher-disk" gcePersistentDisk: { pdName: "dishwasher-disk" fsType: "ext4" } }, { name: "secret-dishwasher" secret: { secretName: "dishwasher-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "dishwasher-secrets" } }] containers: [{ name: "dishwasher" image: "gcr.io/myproj/dishwasher:v0.2.13" volumeMounts: [{ name: "dishwasher-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-dishwasher" readOnly: true }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { expiditer: { apiVersion: "v1" kind: "Service" metadata: { name: "expiditer" labels: { app: "expiditer" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "expiditer" component: "kitchen" domain: "prod" } } } } deployment: { expiditer: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "expiditer" } spec: { replicas: 1 template: { metadata: { labels: { app: "expiditer" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "expiditer-disk" gcePersistentDisk: { pdName: "expiditer-disk" fsType: "ext4" } }, { name: "secret-expiditer" secret: { secretName: "expiditer-secrets" } }] containers: [{ name: "expiditer" image: "gcr.io/myproj/expiditer:v0.5.34" volumeMounts: [{ name: "expiditer-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-expiditer" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { headchef: { apiVersion: "v1" kind: "Service" metadata: { name: "headchef" labels: { app: "headchef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "headchef" component: "kitchen" domain: "prod" } } } } deployment: { headchef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "headchef" } spec: { replicas: 1 template: { metadata: { labels: { app: "headchef" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "headchef-disk" gcePersistentDisk: { pdName: "headchef-disk" fsType: "ext4" } }, { name: "secret-headchef" secret: { secretName: "headchef-secrets" } }] containers: [{ name: "headchef" image: "gcr.io/myproj/headchef:v0.2.16" volumeMounts: [{ name: "headchef-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-headchef" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { linecook: { apiVersion: "v1" kind: "Service" metadata: { name: "linecook" labels: { app: "linecook" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "linecook" component: "kitchen" domain: "prod" } } } } deployment: { linecook: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "linecook" } spec: { replicas: 1 template: { metadata: { labels: { app: "linecook" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "linecook-disk" gcePersistentDisk: { pdName: "linecook-disk" fsType: "ext4" } }, { name: "secret-kitchen" secret: { secretName: "secrets" } }] containers: [{ name: "linecook" image: "gcr.io/myproj/linecook:v0.1.42" volumeMounts: [{ name: "linecook-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-kitchen" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { pastrychef: { apiVersion: "v1" kind: "Service" metadata: { name: "pastrychef" labels: { app: "pastrychef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "pastrychef" component: "kitchen" domain: "prod" } } } } deployment: { pastrychef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "pastrychef" } spec: { replicas: 1 template: { metadata: { labels: { app: "pastrychef" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "pastrychef-disk" gcePersistentDisk: { pdName: "pastrychef-disk" fsType: "ext4" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ name: "pastrychef" image: "gcr.io/myproj/pastrychef:v0.1.15" volumeMounts: [{ name: "pastrychef-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { souschef: { apiVersion: "v1" kind: "Service" metadata: { name: "souschef" labels: { app: "souschef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "souschef" component: "kitchen" domain: "prod" } } } } deployment: { souschef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "souschef" } spec: { replicas: 1 template: { metadata: { labels: { app: "souschef" component: "kitchen" domain: "prod" } } spec: { containers: [{ name: "souschef" image: "gcr.io/myproj/souschef:v0.5.3" ports: [{ containerPort: 8080 }] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // /tmp/tutorial4011640380/services/mon/alertmanager deployment.alertmanager.spec.template.metadata.labels.component: incomplete value string service.alertmanager.metadata.labels.component: incomplete value string service.alertmanager.spec.selector.component: incomplete value string // --- service: { grafana: { apiVersion: "v1" kind: "Service" metadata: { name: "grafana" labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { selector: { app: "grafana" domain: "prod" component: "mon" } ports: [{ name: "grafana" protocol: "TCP" port: 3000 targetPort: 3000 }] } } } deployment: { grafana: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "grafana" labels: { app: "grafana" component: "mon" } } spec: { replicas: 1 template: { metadata: { labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { volumes: [{ name: "grafana-volume" gcePersistentDisk: { pdName: "grafana-volume" fsType: "ext4" } }] containers: [{ image: "grafana/grafana:4.5.2" name: "grafana" ports: [{ containerPort: 8080 }] resources: { limits: { cpu: "100m" memory: "100Mi" } requests: { cpu: "100m" memory: "100Mi" } } env: [{ name: "GF_AUTH_BASIC_ENABLED" value: "false" }, { name: "GF_AUTH_ANONYMOUS_ENABLED" value: "true" }, { name: "GF_AUTH_ANONYMOUS_ORG_ROLE" value: "admin" }] volumeMounts: [{ name: "grafana-volume" mountPath: "/var/lib/grafana" }] }] } } } } } // /tmp/tutorial4011640380/services/mon/nodeexporter service."node-exporter".metadata.labels.component: incomplete value string service."node-exporter".spec.selector.component: incomplete value string // /tmp/tutorial4011640380/services/mon/prometheus deployment.prometheus.spec.template.metadata.labels.component: incomplete value string service.prometheus.metadata.labels.component: incomplete value string service.prometheus.spec.selector.component: incomplete value string // /tmp/tutorial4011640380/services/proxy/authproxy deployment.authproxy.spec.template.metadata.labels.component: incomplete value string service.authproxy.metadata.labels.component: incomplete value string service.authproxy.spec.selector.component: incomplete value string // --- service: { goget: { apiVersion: "v1" kind: "Service" metadata: { name: "goget" labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.5.7" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "https" }] selector: { app: "goget" domain: "prod" component: "proxy" } } } } deployment: { goget: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "goget" } spec: { replicas: 1 template: { metadata: { labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "goget-secrets" } }] containers: [{ name: "goget" image: "gcr.io/myproj/goget:v0.5.1" ports: [{ containerPort: 7443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { nginx: { apiVersion: "v1" kind: "Service" metadata: { name: "nginx" labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.4.5" ports: [{ port: 80 targetPort: 80 protocol: "TCP" name: "http" }, { port: 443 protocol: "TCP" name: "https" }] selector: { app: "nginx" domain: "prod" component: "proxy" } } } } configMap: { nginx: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "nginx" } data: { "nginx.conf": """ events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; # needs to be high for some download jobs. keepalive_timeout 400; # proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; error_log /dev/stdout; # Disable POST body size constraints. We often deal with large # files. Especially docker containers may be large. client_max_body_size 0; upstream goget { server localhost:7070; } # Redirect incoming Google Cloud Storage notifications: server { listen 443 ssl; server_name notify.example.com notify2.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://tasks:7080; proxy_connect_timeout 1; } } server { listen 80; listen 443 ssl; server_name x.example.com example.io; location ~ "(/[^/]+)(/.*)?" { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost$1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } location / { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } server { listen 80; server_name www.example.com w.example.com; resolver 8.8.8.8; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$host.default.example.appspot.com/$request_uri; proxy_redirect http://$host.default.example.appspot.com/ /; } } server { # We could add the following line and the connection would still be SSL, # but it doesn't appear to be necessary. Seems saver this way. listen 80; listen 443 default ssl; server_name ~^(?.*)\\.example\\.com$; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://authproxy:4180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } } """ } } } deployment: { nginx: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "nginx" } spec: { replicas: 1 template: { metadata: { labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "proxy-secrets" } }, { name: "config-volume" configMap: { name: "nginx" } }] containers: [{ name: "nginx" image: "nginx:1.11.10-alpine" ports: [{ containerPort: 80 }, { containerPort: 443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }, { name: "config-volume" mountPath: "/etc/nginx/nginx.conf" subPath: "nginx.conf" }] }] } } } } } tut_test.go:382: Execution failed: terminating because of errors tut_test.go:120: $ cue add */kube.cue -p kube --list tut_test.go:353: Executing command: cue add */kube.cue -p kube --list tut_test.go:357: Args: ["add" "*/kube.cue" "-p" "kube" "--list"] tut_test.go:120: $ sed -i.bak 's/component:.*string/component: #Component/' kube.cue && rm kube.cue.bak tut_test.go:120: $ cat tut_test.go:120: $ ls -d */ | sed 's/.$//' | xargs -I DIR sh -c 'cd DIR; echo "package kube tut_test.go:120: $ cue fmt kube.cue */kube.cue tut_test.go:353: Executing command: cue fmt kube.cue */kube.cue tut_test.go:357: Args: ["fmt" "kube.cue" "*/kube.cue"] could not find file: stat: stat /tmp/tutorial4011640380/services/*/kube.cue: no such file or directory tut_test.go:382: Execution failed: terminating because of errors tut_test.go:120: $ cue eval -c ./... tut_test.go:353: Executing command: cue eval -c ./... tut_test.go:357: Args: ["eval" "-c" "./..."] service: {} deployment: {} // --- service: {} deployment: {} // --- service: { bartender: { apiVersion: "v1" kind: "Service" metadata: { name: "bartender" labels: { component: "frontend" app: "bartender" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { component: "frontend" app: "bartender" domain: "prod" } } } } deployment: { bartender: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "bartender" } spec: { replicas: 1 template: { metadata: { labels: { component: "frontend" app: "bartender" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "bartender" image: "gcr.io/myproj/bartender:v0.1.34" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { breaddispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "breaddispatcher" labels: { app: "breaddispatcher" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "breaddispatcher" component: "frontend" domain: "prod" } } } } deployment: { breaddispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "breaddispatcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "breaddispatcher" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "breaddispatcher" image: "gcr.io/myproj/breaddispatcher:v0.3.24" ports: [{ containerPort: 7080 }] args: ["-etcd=etcd:2379", "-event-server=events:7788"] }] } } } } } // --- service: { host: { apiVersion: "v1" kind: "Service" metadata: { name: "host" labels: { app: "host" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "host" component: "frontend" domain: "prod" } } } } deployment: { host: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "host" } spec: { replicas: 2 template: { metadata: { labels: { app: "host" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "host" image: "gcr.io/myproj/host:v0.1.10" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { maitred: { apiVersion: "v1" kind: "Service" metadata: { name: "maitred" labels: { app: "maitred" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "maitred" domain: "prod" component: "frontend" } } } } deployment: { maitred: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "maitred" } spec: { replicas: 1 template: { metadata: { labels: { app: "maitred" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "maitred" image: "gcr.io/myproj/maitred:v0.0.4" ports: [{ containerPort: 7080 }] args: [] }] } } } } } // --- service: { valeter: { apiVersion: "v1" kind: "Service" metadata: { name: "valeter" labels: { component: "frontend" app: "valeter" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "http" }] selector: { app: "valeter" domain: "prod" component: "frontend" } } } } deployment: { valeter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "valeter" } spec: { replicas: 1 template: { metadata: { labels: { component: "frontend" app: "valeter" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "valeter" image: "gcr.io/myproj/valeter:v0.0.4" ports: [{ containerPort: 8080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: { waiter: { apiVersion: "v1" kind: "Service" metadata: { name: "waiter" labels: { component: "frontend" app: "waiter" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "waiter" component: "frontend" domain: "prod" } } } } deployment: { waiter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waiter" } spec: { replicas: 5 template: { metadata: { labels: { component: "frontend" app: "waiter" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "waiter" image: "gcr.io/myproj/waiter:v0.3.0" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { waterdispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "waterdispatcher" labels: { app: "waterdispatcher" component: "frontend" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "http" }] selector: { app: "waterdispatcher" component: "frontend" domain: "prod" } } } } deployment: { waterdispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waterdispatcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "waterdispatcher" component: "frontend" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ name: "waterdispatcher" image: "gcr.io/myproj/waterdispatcher:v0.0.48" ports: [{ containerPort: 7080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: {} deployment: {} // --- service: { download: { apiVersion: "v1" kind: "Service" metadata: { name: "download" labels: { app: "download" component: "infra" domain: "prod" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "client" }] selector: { app: "download" domain: "prod" component: "infra" } } } } deployment: { download: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "download" } spec: { replicas: 1 template: { metadata: { labels: { app: "download" component: "infra" domain: "prod" } } spec: { containers: [{ name: "download" image: "gcr.io/myproj/download:v0.0.2" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { etcd: { apiVersion: "v1" kind: "Service" metadata: { name: "etcd" labels: { app: "etcd" domain: "prod" component: "infra" } } spec: { clusterIP: "None" selector: { app: "etcd" domain: "prod" component: "infra" } ports: [{ port: 2379 targetPort: 2379 protocol: "TCP" name: "client" }, { port: 2380 targetPort: 2380 protocol: "TCP" name: "peer" }] } } } deployment: {} statefulSet: { etcd: { apiVersion: "apps/v1" kind: "StatefulSet" metadata: { name: "etcd" } spec: { serviceName: "etcd" replicas: 3 template: { metadata: { labels: { app: "etcd" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "2379" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["etcd"] }] } topologyKey: "kubernetes.io/hostname" }] } } terminationGracePeriodSeconds: 10 containers: [{ name: "etcd" image: "quay.io/coreos/etcd:v3.3.10" ports: [{ name: "client" containerPort: 2379 }, { name: "peer" containerPort: 2380 }] livenessProbe: { httpGet: { path: "/health" port: "client" } initialDelaySeconds: 30 } volumeMounts: [{ name: "etcd3" mountPath: "/data" }] env: [{ name: "ETCDCTL_API" value: "3" }, { name: "ETCD_AUTO_COMPACTION_RETENTION" value: "4" }, { name: "NAME" valueFrom: { fieldRef: { fieldPath: "metadata.name" } } }, { name: "IP" valueFrom: { fieldRef: { fieldPath: "status.podIP" } } }] command: ["/usr/local/bin/etcd"] args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"] }] } } volumeClaimTemplates: [{ metadata: { name: "etcd3" annotations: { "volume.alpha.kubernetes.io/storage-class": "default" } } spec: { accessModes: ["ReadWriteOnce"] resources: { requests: { storage: "10Gi" } } } }] } } } // --- service: { events: { apiVersion: "v1" kind: "Service" metadata: { name: "events" labels: { app: "events" component: "infra" domain: "prod" } } spec: { ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "grpc" }] selector: { app: "events" component: "infra" domain: "prod" } } } } deployment: { events: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "events" } spec: { replicas: 2 template: { metadata: { labels: { app: "events" component: "infra" domain: "prod" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["events"] }] } topologyKey: "kubernetes.io/hostname" }] } } volumes: [{ name: "secret-volume" secret: { secretName: "biz-secrets" } }] containers: [{ name: "events" image: "gcr.io/myproj/events:v0.1.31" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { tasks: { apiVersion: "v1" kind: "Service" metadata: { name: "tasks" labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "http" }] selector: { app: "tasks" domain: "prod" component: "infra" } } } } deployment: { tasks: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "tasks" } spec: { replicas: 1 template: { metadata: { labels: { app: "tasks" domain: "prod" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ name: "tasks" image: "gcr.io/myproj/tasks:v0.2.6" ports: [{ containerPort: 7080 }, { containerPort: 7443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { updater: { apiVersion: "v1" kind: "Service" metadata: { name: "updater" labels: { app: "updater" component: "infra" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "updater" domain: "prod" component: "infra" } } } } deployment: { updater: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "updater" } spec: { replicas: 1 template: { metadata: { labels: { app: "updater" component: "infra" domain: "prod" } } spec: { volumes: [{ name: "secret-updater" secret: { secretName: "updater-secrets" } }] containers: [{ name: "updater" image: "gcr.io/myproj/updater:v0.1.0" volumeMounts: [{ mountPath: "/etc/certs" name: "secret-updater" }] ports: [{ containerPort: 8080 }] args: ["-key=/etc/certs/updater.pem"] }] } } } } } // --- service: { watcher: { apiVersion: "v1" kind: "Service" metadata: { name: "watcher" labels: { app: "watcher" component: "infra" domain: "prod" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4." ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "http" }] selector: { app: "watcher" component: "infra" domain: "prod" } } } } deployment: { watcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "watcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "watcher" component: "infra" domain: "prod" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ name: "watcher" image: "gcr.io/myproj/watcher:v0.1.0" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: {} deployment: {} // --- service: { caller: { apiVersion: "v1" kind: "Service" metadata: { name: "caller" labels: { app: "caller" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "caller" domain: "prod" component: "kitchen" } } } } deployment: { caller: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "caller" } spec: { replicas: 3 template: { metadata: { labels: { app: "caller" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "ssd-caller" gcePersistentDisk: { pdName: "ssd-caller" fsType: "ext4" } }, { name: "secret-caller" secret: { secretName: "caller-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ name: "caller" image: "gcr.io/myproj/caller:v0.20.14" volumeMounts: [{ name: "ssd-caller" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-caller" readOnly: true }, { mountPath: "/sslcerts" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { dishwasher: { apiVersion: "v1" kind: "Service" metadata: { name: "dishwasher" labels: { app: "dishwasher" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "dishwasher" component: "kitchen" domain: "prod" } } } } deployment: { dishwasher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "dishwasher" } spec: { replicas: 5 template: { metadata: { labels: { app: "dishwasher" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "dishwasher-disk" gcePersistentDisk: { pdName: "dishwasher-disk" fsType: "ext4" } }, { name: "secret-dishwasher" secret: { secretName: "dishwasher-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "dishwasher-secrets" } }] containers: [{ name: "dishwasher" image: "gcr.io/myproj/dishwasher:v0.2.13" volumeMounts: [{ name: "dishwasher-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-dishwasher" readOnly: true }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { expiditer: { apiVersion: "v1" kind: "Service" metadata: { name: "expiditer" labels: { app: "expiditer" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "expiditer" component: "kitchen" domain: "prod" } } } } deployment: { expiditer: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "expiditer" } spec: { replicas: 1 template: { metadata: { labels: { app: "expiditer" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "expiditer-disk" gcePersistentDisk: { pdName: "expiditer-disk" fsType: "ext4" } }, { name: "secret-expiditer" secret: { secretName: "expiditer-secrets" } }] containers: [{ name: "expiditer" image: "gcr.io/myproj/expiditer:v0.5.34" volumeMounts: [{ name: "expiditer-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-expiditer" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { headchef: { apiVersion: "v1" kind: "Service" metadata: { name: "headchef" labels: { app: "headchef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "headchef" component: "kitchen" domain: "prod" } } } } deployment: { headchef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "headchef" } spec: { replicas: 1 template: { metadata: { labels: { app: "headchef" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "headchef-disk" gcePersistentDisk: { pdName: "headchef-disk" fsType: "ext4" } }, { name: "secret-headchef" secret: { secretName: "headchef-secrets" } }] containers: [{ name: "headchef" image: "gcr.io/myproj/headchef:v0.2.16" volumeMounts: [{ name: "headchef-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-headchef" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { linecook: { apiVersion: "v1" kind: "Service" metadata: { name: "linecook" labels: { app: "linecook" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "linecook" component: "kitchen" domain: "prod" } } } } deployment: { linecook: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "linecook" } spec: { replicas: 1 template: { metadata: { labels: { app: "linecook" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "linecook-disk" gcePersistentDisk: { pdName: "linecook-disk" fsType: "ext4" } }, { name: "secret-kitchen" secret: { secretName: "secrets" } }] containers: [{ name: "linecook" image: "gcr.io/myproj/linecook:v0.1.42" volumeMounts: [{ name: "linecook-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-kitchen" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { pastrychef: { apiVersion: "v1" kind: "Service" metadata: { name: "pastrychef" labels: { app: "pastrychef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "pastrychef" component: "kitchen" domain: "prod" } } } } deployment: { pastrychef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "pastrychef" } spec: { replicas: 1 template: { metadata: { labels: { app: "pastrychef" component: "kitchen" domain: "prod" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "pastrychef-disk" gcePersistentDisk: { pdName: "pastrychef-disk" fsType: "ext4" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ name: "pastrychef" image: "gcr.io/myproj/pastrychef:v0.1.15" volumeMounts: [{ name: "pastrychef-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { souschef: { apiVersion: "v1" kind: "Service" metadata: { name: "souschef" labels: { app: "souschef" component: "kitchen" domain: "prod" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "client" }] selector: { app: "souschef" component: "kitchen" domain: "prod" } } } } deployment: { souschef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "souschef" } spec: { replicas: 1 template: { metadata: { labels: { app: "souschef" component: "kitchen" domain: "prod" } } spec: { containers: [{ name: "souschef" image: "gcr.io/myproj/souschef:v0.5.3" ports: [{ containerPort: 8080 }] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: {} deployment: {} // --- service: { alertmanager: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" "prometheus.io/path": "/metrics" } labels: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } name: "alertmanager" } spec: { selector: { app: "alertmanager" name: "alertmanager" domain: "prod" component: "mon" } ports: [{ name: "main" protocol: "TCP" port: 9093 targetPort: 9093 }] } } } configMap: { alertmanager: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "alertmanager" } data: { "alerts.yaml": """ receivers: - name: pager slack_configs: - channel: '#cloudmon' text: |- {{ range .Alerts }}{{ .Annotations.description }} {{ end }} send_resolved: true route: receiver: pager group_by: - alertname - cluster """ } } } deployment: { alertmanager: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "alertmanager" } spec: { replicas: 1 selector: { matchLabels: { app: "alertmanager" } } template: { metadata: { name: "alertmanager" labels: { app: "alertmanager" domain: "prod" component: "mon" } } spec: { containers: [{ name: "alertmanager" image: "prom/alertmanager:v0.15.2" args: ["--config.file=/etc/alertmanager/alerts.yaml", "--storage.path=/alertmanager", "--web.external-url=https://alertmanager.example.com"] ports: [{ name: "alertmanager" containerPort: 9093 }] volumeMounts: [{ name: "config-volume" mountPath: "/etc/alertmanager" }, { name: "alertmanager" mountPath: "/alertmanager" }] }] volumes: [{ name: "config-volume" configMap: { name: "alertmanager" } }, { name: "alertmanager" emptyDir: {} }] } } } } } // --- service: { grafana: { apiVersion: "v1" kind: "Service" metadata: { name: "grafana" labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { selector: { app: "grafana" domain: "prod" component: "mon" } ports: [{ name: "grafana" protocol: "TCP" port: 3000 targetPort: 3000 }] } } } deployment: { grafana: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "grafana" labels: { app: "grafana" component: "mon" } } spec: { replicas: 1 template: { metadata: { labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { volumes: [{ name: "grafana-volume" gcePersistentDisk: { pdName: "grafana-volume" fsType: "ext4" } }] containers: [{ image: "grafana/grafana:4.5.2" name: "grafana" ports: [{ containerPort: 8080 }] resources: { limits: { cpu: "100m" memory: "100Mi" } requests: { cpu: "100m" memory: "100Mi" } } env: [{ name: "GF_AUTH_BASIC_ENABLED" value: "false" }, { name: "GF_AUTH_ANONYMOUS_ENABLED" value: "true" }, { name: "GF_AUTH_ANONYMOUS_ORG_ROLE" value: "admin" }] volumeMounts: [{ name: "grafana-volume" mountPath: "/var/lib/grafana" }] }] } } } } } // --- service: { "node-exporter": { apiVersion: "v1" kind: "Service" metadata: { labels: { app: "node-exporter" domain: "prod" component: "mon" } annotations: { "prometheus.io/scrape": "true" } name: "node-exporter" } spec: { type: "ClusterIP" clusterIP: "None" ports: [{ name: "metrics" port: 9100 protocol: "TCP" }] selector: { app: "node-exporter" domain: "prod" component: "mon" } } } } deployment: {} daemonSet: { "node-exporter": { apiVersion: "apps/v1" kind: "DaemonSet" metadata: { name: "node-exporter" } spec: { template: { metadata: { labels: { app: "node-exporter" } name: "node-exporter" } spec: { hostNetwork: true hostPID: true containers: [{ image: "quay.io/prometheus/node-exporter:v0.16.0" args: ["--path.procfs=/host/proc", "--path.sysfs=/host/sys"] name: "node-exporter" ports: [{ containerPort: 9100 hostPort: 9100 name: "scrape" }] resources: { requests: { memory: "30Mi" cpu: "100m" } limits: { memory: "50Mi" cpu: "200m" } } volumeMounts: [{ name: "proc" readOnly: true mountPath: "/host/proc" }, { name: "sys" readOnly: true mountPath: "/host/sys" }] }] volumes: [{ name: "proc" hostPath: { path: "/proc" } }, { name: "sys" hostPath: { path: "/sys" } }] } } } } } // --- service: { prometheus: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } labels: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } name: "prometheus" } spec: { selector: { app: "prometheus" name: "prometheus" domain: "prod" component: "mon" } type: "NodePort" ports: [{ name: "main" protocol: "TCP" port: 9090 nodePort: 30900 }] } } } configMap: { prometheus: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "prometheus" } data: { "alert.rules": """ groups: - name: rules.yaml rules: - alert: InstanceDown expr: up == 0 for: 30s labels: severity: page annotations: description: '{{$labels.app}} of job {{ $labels.job }} has been down for more than 30 seconds.' summary: Instance {{$labels.app}} down - alert: InsufficientPeers expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) for: 3m labels: severity: page annotations: description: If one more etcd peer goes down the cluster will be unavailable summary: etcd cluster small - alert: EtcdNoMaster expr: sum(etcd_server_has_leader{app="etcd"}) == 0 for: 1s labels: severity: page annotations: summary: No ETCD master elected. - alert: PodRestart expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m])) > 2 for: 1m labels: severity: page annotations: description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }} times in 5m.' summary: Pod for {{$labels.container}} restarts too often """ "prometheus.yml": """ global: scrape_interval: 15s rule_files: - /etc/prometheus/alert.rules alerting: alertmanagers: - scheme: http static_configs: - targets: - alertmanager:9093 scrape_configs: - job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https - job_name: kubernetes-nodes scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics - job_name: kubernetes-cadvisor scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme action: replace target_label: __scheme__ regex: (https?) - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port action: replace target_label: __address__ regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name action: replace target_label: kubernetes_name - job_name: kubernetes-services metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: service relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __address__ target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name target_label: kubernetes_name - job_name: kubernetes-ingresses metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: ingress relabel_configs: - source_labels: - __meta_kubernetes_ingress_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __meta_kubernetes_ingress_scheme - __address__ - __meta_kubernetes_ingress_path regex: (.+);(.+);(.+) replacement: ${1}://${2}${3} target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_ingress_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_ingress_name target_label: kubernetes_name - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name """ } } } deployment: { prometheus: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "prometheus" } spec: { replicas: 1 strategy: { rollingUpdate: { maxSurge: 0 maxUnavailable: 1 } type: "RollingUpdate" } selector: { matchLabels: { app: "prometheus" } } template: { metadata: { name: "prometheus" labels: { app: "prometheus" domain: "prod" component: "mon" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ name: "prometheus" image: "prom/prometheus:v2.4.3" args: ["--config.file=/etc/prometheus/prometheus.yml", "--web.external-url=https://prometheus.example.com"] ports: [{ name: "web" containerPort: 9090 }] volumeMounts: [{ name: "config-volume" mountPath: "/etc/prometheus" }] }] volumes: [{ name: "config-volume" configMap: { name: "prometheus" } }] } } } } } // --- service: {} deployment: {} // --- service: { authproxy: { apiVersion: "v1" kind: "Service" metadata: { name: "authproxy" labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { ports: [{ port: 4180 targetPort: 4180 protocol: "TCP" name: "client" }] selector: { app: "authproxy" domain: "prod" component: "proxy" } } } } deployment: { authproxy: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "authproxy" } spec: { replicas: 1 template: { metadata: { labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { containers: [{ name: "authproxy" image: "skippy/oauth2_proxy:2.0.1" ports: [{ containerPort: 4180 }] args: ["--config=/etc/authproxy/authproxy.cfg"] volumeMounts: [{ name: "config-volume" mountPath: "/etc/authproxy" }] }] volumes: [{ name: "config-volume" configMap: { name: "authproxy" } }] } } } } } configMap: { authproxy: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "authproxy" } data: { "authproxy.cfg": """ # Google Auth Proxy Config File ## https://github.com/bitly/google_auth_proxy ## : to listen on for HTTP clients http_address = "0.0.0.0:4180" ## the OAuth Redirect URL. redirect_url = "https://auth.example.com/oauth2/callback" ## the http url(s) of the upstream endpoint. If multiple, routing is based on path upstreams = [ # frontend "http://frontend-waiter:7080/dpr/", "http://frontend-maitred:7080/ui/", "http://frontend-maitred:7080/ui", "http://frontend-maitred:7080/report/", "http://frontend-maitred:7080/report", "http://frontend-maitred:7080/static/", # kitchen "http://kitchen-chef:8080/visit", # infrastructure "http://download:7080/file/", "http://download:7080/archive", "http://tasks:7080/tasks", "http://tasks:7080/tasks/", ] ## pass HTTP Basic Auth, X-Forwarded-User and X-Forwarded-Email information to upstream pass_basic_auth = true request_logging = true ## Google Apps Domains to allow authentication for google_apps_domains = [ "example.com", ] email_domains = [ "example.com", ] ## The Google OAuth Client ID, Secret client_id = "---" client_secret = "---" ## Cookie Settings ## Secret - the seed string for secure cookies ## Domain - optional cookie domain to force cookies to (ie: .yourcompany.com) ## Expire - expire timeframe for cookie cookie_secret = "won't tell you" cookie_domain = ".example.com" cookie_https_only = true """ } } } // --- service: { goget: { apiVersion: "v1" kind: "Service" metadata: { name: "goget" labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.5.7" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "https" }] selector: { app: "goget" domain: "prod" component: "proxy" } } } } deployment: { goget: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "goget" } spec: { replicas: 1 template: { metadata: { labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "goget-secrets" } }] containers: [{ name: "goget" image: "gcr.io/myproj/goget:v0.5.1" ports: [{ containerPort: 7443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { nginx: { apiVersion: "v1" kind: "Service" metadata: { name: "nginx" labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.4.5" ports: [{ port: 80 targetPort: 80 protocol: "TCP" name: "http" }, { port: 443 protocol: "TCP" name: "https" }] selector: { app: "nginx" domain: "prod" component: "proxy" } } } } deployment: { nginx: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "nginx" } spec: { replicas: 1 template: { metadata: { labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "proxy-secrets" } }, { name: "config-volume" configMap: { name: "nginx" } }] containers: [{ name: "nginx" image: "nginx:1.11.10-alpine" ports: [{ containerPort: 80 }, { containerPort: 443 }] volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }, { name: "config-volume" mountPath: "/etc/nginx/nginx.conf" subPath: "nginx.conf" }] }] } } } } } configMap: { nginx: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "nginx" } data: { "nginx.conf": """ events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; # needs to be high for some download jobs. keepalive_timeout 400; # proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; error_log /dev/stdout; # Disable POST body size constraints. We often deal with large # files. Especially docker containers may be large. client_max_body_size 0; upstream goget { server localhost:7070; } # Redirect incoming Google Cloud Storage notifications: server { listen 443 ssl; server_name notify.example.com notify2.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://tasks:7080; proxy_connect_timeout 1; } } server { listen 80; listen 443 ssl; server_name x.example.com example.io; location ~ "(/[^/]+)(/.*)?" { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost$1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } location / { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } server { listen 80; server_name www.example.com w.example.com; resolver 8.8.8.8; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$host.default.example.appspot.com/$request_uri; proxy_redirect http://$host.default.example.appspot.com/ /; } } server { # We could add the following line and the connection would still be SSL, # but it doesn't appear to be necessary. Seems saver this way. listen 80; listen 443 default ssl; server_name ~^(?.*)\\.example\\.com$; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://authproxy:4180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } } """ } } } tut_test.go:120: $ diff snapshot snapshot2 tut_test.go:120: $ cp snapshot2 snapshot tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 tut_test.go:120: $ cue trim ./... tut_test.go:353: Executing command: cue trim ./... tut_test.go:357: Args: ["trim" "./..."] tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 tut_test.go:120: $ cue eval -c ./... tut_test.go:353: Executing command: cue eval -c ./... tut_test.go:357: Args: ["eval" "-c" "./..."] service: {} deployment: {} // --- service: {} deployment: {} // --- service: { bartender: { apiVersion: "v1" kind: "Service" metadata: { name: "bartender" labels: { app: "bartender" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "bartender" domain: "prod" component: "frontend" } } } } deployment: { bartender: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "bartender" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "bartender" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/bartender:v0.1.34" ports: [{ containerPort: 7080 }] name: "bartender" args: [] }] } } } } } // --- service: { breaddispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "breaddispatcher" labels: { app: "breaddispatcher" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "breaddispatcher" domain: "prod" component: "frontend" } } } } deployment: { breaddispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "breaddispatcher" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "breaddispatcher" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/breaddispatcher:v0.3.24" ports: [{ containerPort: 7080 }] name: "breaddispatcher" args: ["-etcd=etcd:2379", "-event-server=events:7788"] }] } } } } } // --- service: { host: { apiVersion: "v1" kind: "Service" metadata: { name: "host" labels: { app: "host" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "host" domain: "prod" component: "frontend" } } } } deployment: { host: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "host" } spec: { replicas: 2 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "host" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/host:v0.1.10" ports: [{ containerPort: 7080 }] name: "host" args: [] }] } } } } } // --- service: { maitred: { apiVersion: "v1" kind: "Service" metadata: { name: "maitred" labels: { app: "maitred" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "maitred" domain: "prod" component: "frontend" } } } } deployment: { maitred: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "maitred" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "maitred" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/maitred:v0.0.4" ports: [{ containerPort: 7080 }] name: "maitred" args: [] }] } } } } } // --- service: { valeter: { apiVersion: "v1" kind: "Service" metadata: { name: "valeter" labels: { app: "valeter" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 8080 targetPort: 8080 protocol: "TCP" name: "http" }] selector: { app: "valeter" domain: "prod" component: "frontend" } } } } deployment: { valeter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "valeter" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "valeter" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/valeter:v0.0.4" ports: [{ containerPort: 8080 }] name: "valeter" args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: { waiter: { apiVersion: "v1" kind: "Service" metadata: { name: "waiter" labels: { app: "waiter" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "waiter" domain: "prod" component: "frontend" } } } } deployment: { waiter: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waiter" } spec: { replicas: 5 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "waiter" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/waiter:v0.3.0" name: "waiter" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { waterdispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "waterdispatcher" labels: { app: "waterdispatcher" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 targetPort: 7080 protocol: "TCP" name: "http" }] selector: { app: "waterdispatcher" domain: "prod" component: "frontend" } } } } deployment: { waterdispatcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "waterdispatcher" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "waterdispatcher" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/waterdispatcher:v0.0.48" ports: [{ containerPort: 7080 }] name: "waterdispatcher" args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } } } // --- service: {} deployment: {} // --- service: { download: { apiVersion: "v1" kind: "Service" metadata: { name: "download" labels: { app: "download" domain: "prod" component: "infra" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "download" domain: "prod" component: "infra" } } } } deployment: { download: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "download" } spec: { replicas: 1 template: { metadata: { labels: { app: "download" domain: "prod" component: "infra" } } spec: { containers: [{ image: "gcr.io/myproj/download:v0.0.2" name: "download" ports: [{ containerPort: 7080 }] }] } } } } } // --- service: { etcd: { apiVersion: "v1" kind: "Service" metadata: { name: "etcd" labels: { app: "etcd" domain: "prod" component: "infra" } } spec: { clusterIP: "None" ports: [{ port: 2379 protocol: "TCP" targetPort: 2379 name: "client" }, { port: 2380 targetPort: 2380 protocol: "TCP" name: "peer" }] selector: { app: "etcd" domain: "prod" component: "infra" } } } } deployment: {} statefulSet: { etcd: { apiVersion: "apps/v1" kind: "StatefulSet" metadata: { name: "etcd" } spec: { serviceName: "etcd" replicas: 3 template: { metadata: { labels: { app: "etcd" component: "infra" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "2379" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["etcd"] }] } topologyKey: "kubernetes.io/hostname" }] } } terminationGracePeriodSeconds: 10 containers: [{ name: "etcd" image: "quay.io/coreos/etcd:v3.3.10" ports: [{ name: "client" containerPort: 2379 }, { name: "peer" containerPort: 2380 }] livenessProbe: { httpGet: { path: "/health" port: "client" } initialDelaySeconds: 30 } volumeMounts: [{ name: "etcd3" mountPath: "/data" }] env: [{ name: "ETCDCTL_API" value: "3" }, { name: "ETCD_AUTO_COMPACTION_RETENTION" value: "4" }, { name: "NAME" valueFrom: { fieldRef: { fieldPath: "metadata.name" } } }, { name: "IP" valueFrom: { fieldRef: { fieldPath: "status.podIP" } } }] command: ["/usr/local/bin/etcd"] args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"] }] } } volumeClaimTemplates: [{ metadata: { name: "etcd3" annotations: { "volume.alpha.kubernetes.io/storage-class": "default" } } spec: { accessModes: ["ReadWriteOnce"] resources: { requests: { storage: "10Gi" } } } }] } } } // --- service: { events: { apiVersion: "v1" kind: "Service" metadata: { name: "events" labels: { app: "events" domain: "prod" component: "infra" } } spec: { ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "grpc" }] selector: { app: "events" domain: "prod" component: "infra" } } } } deployment: { events: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "events" } spec: { replicas: 2 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "events" domain: "prod" component: "infra" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["events"] }] } topologyKey: "kubernetes.io/hostname" }] } } volumes: [{ name: "secret-volume" secret: { secretName: "biz-secrets" } }] containers: [{ image: "gcr.io/myproj/events:v0.1.31" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"] name: "events" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { tasks: { apiVersion: "v1" kind: "Service" metadata: { name: "tasks" labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "http" }] selector: { app: "tasks" domain: "prod" component: "infra" } } } } deployment: { tasks: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "tasks" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ image: "gcr.io/myproj/tasks:v0.2.6" ports: [{ containerPort: 7080 }, { containerPort: 7443 }] name: "tasks" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { updater: { apiVersion: "v1" kind: "Service" metadata: { name: "updater" labels: { app: "updater" domain: "prod" component: "infra" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "updater" domain: "prod" component: "infra" } } } } deployment: { updater: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "updater" } spec: { replicas: 1 template: { metadata: { labels: { app: "updater" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-updater" secret: { secretName: "updater-secrets" } }] containers: [{ image: "gcr.io/myproj/updater:v0.1.0" volumeMounts: [{ mountPath: "/etc/certs" name: "secret-updater" }] ports: [{ containerPort: 8080 }] name: "updater" args: ["-key=/etc/certs/updater.pem"] }] } } } } } // --- service: { watcher: { apiVersion: "v1" kind: "Service" metadata: { name: "watcher" labels: { app: "watcher" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4." ports: [{ port: 7788 targetPort: 7788 protocol: "TCP" name: "http" }] selector: { app: "watcher" domain: "prod" component: "infra" } } } } deployment: { watcher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "watcher" } spec: { replicas: 1 template: { metadata: { labels: { app: "watcher" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ image: "gcr.io/myproj/watcher:v0.1.0" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] name: "watcher" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: {} deployment: {} // --- service: { caller: { apiVersion: "v1" kind: "Service" metadata: { name: "caller" labels: { app: "caller" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "caller" domain: "prod" component: "kitchen" } } } } deployment: { caller: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "caller" } spec: { replicas: 3 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "caller" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "ssd-caller" gcePersistentDisk: { pdName: "ssd-caller" fsType: "ext4" } }, { name: "secret-caller" secret: { secretName: "caller-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/caller:v0.20.14" volumeMounts: [{ name: "ssd-caller" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-caller" readOnly: true }, { mountPath: "/sslcerts" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] name: "caller" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { dishwasher: { apiVersion: "v1" kind: "Service" metadata: { name: "dishwasher" labels: { app: "dishwasher" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "dishwasher" domain: "prod" component: "kitchen" } } } } deployment: { dishwasher: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "dishwasher" } spec: { replicas: 5 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "dishwasher" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "dishwasher-disk" gcePersistentDisk: { pdName: "dishwasher-disk" fsType: "ext4" } }, { name: "secret-dishwasher" secret: { secretName: "dishwasher-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "dishwasher-secrets" } }] containers: [{ image: "gcr.io/myproj/dishwasher:v0.2.13" volumeMounts: [{ name: "dishwasher-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-dishwasher" readOnly: true }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] name: "dishwasher" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { expiditer: { apiVersion: "v1" kind: "Service" metadata: { name: "expiditer" labels: { app: "expiditer" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "expiditer" domain: "prod" component: "kitchen" } } } } deployment: { expiditer: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "expiditer" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "expiditer" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "expiditer-disk" gcePersistentDisk: { pdName: "expiditer-disk" fsType: "ext4" } }, { name: "secret-expiditer" secret: { secretName: "expiditer-secrets" } }] containers: [{ image: "gcr.io/myproj/expiditer:v0.5.34" volumeMounts: [{ name: "expiditer-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-expiditer" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] name: "expiditer" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { headchef: { apiVersion: "v1" kind: "Service" metadata: { name: "headchef" labels: { app: "headchef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "headchef" domain: "prod" component: "kitchen" } } } } deployment: { headchef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "headchef" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "headchef" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "headchef-disk" gcePersistentDisk: { pdName: "headchef-disk" fsType: "ext4" } }, { name: "secret-headchef" secret: { secretName: "headchef-secrets" } }] containers: [{ image: "gcr.io/myproj/headchef:v0.2.16" volumeMounts: [{ name: "headchef-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-headchef" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"] name: "headchef" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { linecook: { apiVersion: "v1" kind: "Service" metadata: { name: "linecook" labels: { app: "linecook" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "linecook" domain: "prod" component: "kitchen" } } } } deployment: { linecook: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "linecook" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "linecook" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "linecook-disk" gcePersistentDisk: { pdName: "linecook-disk" fsType: "ext4" } }, { name: "secret-kitchen" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/linecook:v0.1.42" volumeMounts: [{ name: "linecook-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-kitchen" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"] name: "linecook" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { pastrychef: { apiVersion: "v1" kind: "Service" metadata: { name: "pastrychef" labels: { app: "pastrychef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "pastrychef" domain: "prod" component: "kitchen" } } } } deployment: { pastrychef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "pastrychef" } spec: { replicas: 1 template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "pastrychef" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "pastrychef-disk" gcePersistentDisk: { pdName: "pastrychef-disk" fsType: "ext4" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/pastrychef:v0.1.15" volumeMounts: [{ name: "pastrychef-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"] name: "pastrychef" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: { souschef: { apiVersion: "v1" kind: "Service" metadata: { name: "souschef" labels: { app: "souschef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "souschef" domain: "prod" component: "kitchen" } } } } deployment: { souschef: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "souschef" } spec: { replicas: 1 template: { metadata: { labels: { app: "souschef" domain: "prod" component: "kitchen" } } spec: { containers: [{ image: "gcr.io/myproj/souschef:v0.5.3" ports: [{ containerPort: 8080 }] name: "souschef" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } } } // --- service: {} deployment: {} // --- service: { alertmanager: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" "prometheus.io/path": "/metrics" } name: "alertmanager" labels: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } } spec: { ports: [{ name: "main" port: 9093 protocol: "TCP" targetPort: 9093 }] selector: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } } } } configMap: { alertmanager: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "alertmanager" } data: { "alerts.yaml": """ receivers: - name: pager slack_configs: - channel: '#cloudmon' text: |- {{ range .Alerts }}{{ .Annotations.description }} {{ end }} send_resolved: true route: receiver: pager group_by: - alertname - cluster """ } } } deployment: { alertmanager: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "alertmanager" } spec: { selector: { matchLabels: { app: "alertmanager" } } replicas: 1 template: { metadata: { name: "alertmanager" labels: { app: "alertmanager" domain: "prod" component: "mon" } } spec: { containers: [{ image: "prom/alertmanager:v0.15.2" args: ["--config.file=/etc/alertmanager/alerts.yaml", "--storage.path=/alertmanager", "--web.external-url=https://alertmanager.example.com"] ports: [{ name: "alertmanager" containerPort: 9093 }] name: "alertmanager" volumeMounts: [{ name: "config-volume" mountPath: "/etc/alertmanager" }, { name: "alertmanager" mountPath: "/alertmanager" }] }] volumes: [{ name: "config-volume" configMap: { name: "alertmanager" } }, { name: "alertmanager" emptyDir: {} }] } } } } } // --- service: { grafana: { apiVersion: "v1" kind: "Service" metadata: { name: "grafana" labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { ports: [{ name: "grafana" port: 3000 protocol: "TCP" targetPort: 3000 }] selector: { app: "grafana" domain: "prod" component: "mon" } } } } deployment: { grafana: { apiVersion: "apps/v1" kind: "Deployment" metadata: { labels: { app: "grafana" component: "mon" } name: "grafana" } spec: { replicas: 1 template: { metadata: { labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { volumes: [{ name: "grafana-volume" gcePersistentDisk: { pdName: "grafana-volume" fsType: "ext4" } }] containers: [{ image: "grafana/grafana:4.5.2" ports: [{ containerPort: 8080 }] resources: { limits: { cpu: "100m" memory: "100Mi" } requests: { cpu: "100m" memory: "100Mi" } } env: [{ name: "GF_AUTH_BASIC_ENABLED" value: "false" }, { name: "GF_AUTH_ANONYMOUS_ENABLED" value: "true" }, { name: "GF_AUTH_ANONYMOUS_ORG_ROLE" value: "admin" }] name: "grafana" volumeMounts: [{ name: "grafana-volume" mountPath: "/var/lib/grafana" }] }] } } } } } // --- service: { "node-exporter": { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } name: "node-exporter" labels: { app: "node-exporter" domain: "prod" component: "mon" } } spec: { type: "ClusterIP" clusterIP: "None" ports: [{ name: "metrics" port: 9100 protocol: "TCP" }] selector: { app: "node-exporter" domain: "prod" component: "mon" } } } } deployment: {} daemonSet: { "node-exporter": { apiVersion: "apps/v1" kind: "DaemonSet" metadata: { name: "node-exporter" } spec: { template: { metadata: { labels: { app: "node-exporter" } name: "node-exporter" } spec: { hostNetwork: true hostPID: true containers: [{ image: "quay.io/prometheus/node-exporter:v0.16.0" args: ["--path.procfs=/host/proc", "--path.sysfs=/host/sys"] name: "node-exporter" ports: [{ containerPort: 9100 hostPort: 9100 name: "scrape" }] resources: { requests: { memory: "30Mi" cpu: "100m" } limits: { memory: "50Mi" cpu: "200m" } } volumeMounts: [{ name: "proc" readOnly: true mountPath: "/host/proc" }, { name: "sys" readOnly: true mountPath: "/host/sys" }] }] volumes: [{ name: "proc" hostPath: { path: "/proc" } }, { name: "sys" hostPath: { path: "/sys" } }] } } } } } // --- service: { prometheus: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } name: "prometheus" labels: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } } spec: { type: "NodePort" ports: [{ name: "main" port: 9090 protocol: "TCP" nodePort: 30900 }] selector: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } } } } configMap: { prometheus: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "prometheus" } data: { "alert.rules": """ groups: - name: rules.yaml rules: - alert: InstanceDown expr: up == 0 for: 30s labels: severity: page annotations: description: '{{$labels.app}} of job {{ $labels.job }} has been down for more than 30 seconds.' summary: Instance {{$labels.app}} down - alert: InsufficientPeers expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) for: 3m labels: severity: page annotations: description: If one more etcd peer goes down the cluster will be unavailable summary: etcd cluster small - alert: EtcdNoMaster expr: sum(etcd_server_has_leader{app="etcd"}) == 0 for: 1s labels: severity: page annotations: summary: No ETCD master elected. - alert: PodRestart expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m])) > 2 for: 1m labels: severity: page annotations: description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }} times in 5m.' summary: Pod for {{$labels.container}} restarts too often """ "prometheus.yml": """ global: scrape_interval: 15s rule_files: - /etc/prometheus/alert.rules alerting: alertmanagers: - scheme: http static_configs: - targets: - alertmanager:9093 scrape_configs: - job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https - job_name: kubernetes-nodes scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics - job_name: kubernetes-cadvisor scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme action: replace target_label: __scheme__ regex: (https?) - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port action: replace target_label: __address__ regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name action: replace target_label: kubernetes_name - job_name: kubernetes-services metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: service relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __address__ target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name target_label: kubernetes_name - job_name: kubernetes-ingresses metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: ingress relabel_configs: - source_labels: - __meta_kubernetes_ingress_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __meta_kubernetes_ingress_scheme - __address__ - __meta_kubernetes_ingress_path regex: (.+);(.+);(.+) replacement: ${1}://${2}${3} target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_ingress_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_ingress_name target_label: kubernetes_name - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name """ } } } deployment: { prometheus: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "prometheus" } spec: { strategy: { rollingUpdate: { maxSurge: 0 maxUnavailable: 1 } type: "RollingUpdate" } selector: { matchLabels: { app: "prometheus" } } replicas: 1 template: { metadata: { name: "prometheus" labels: { app: "prometheus" domain: "prod" component: "mon" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ image: "prom/prometheus:v2.4.3" args: ["--config.file=/etc/prometheus/prometheus.yml", "--web.external-url=https://prometheus.example.com"] ports: [{ name: "web" containerPort: 9090 }] name: "prometheus" volumeMounts: [{ name: "config-volume" mountPath: "/etc/prometheus" }] }] volumes: [{ name: "config-volume" configMap: { name: "prometheus" } }] } } } } } // --- service: {} deployment: {} // --- service: { authproxy: { apiVersion: "v1" kind: "Service" metadata: { name: "authproxy" labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { ports: [{ port: 4180 protocol: "TCP" targetPort: 4180 name: "client" }] selector: { app: "authproxy" domain: "prod" component: "proxy" } } } } deployment: { authproxy: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "authproxy" } spec: { replicas: 1 template: { metadata: { labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { containers: [{ image: "skippy/oauth2_proxy:2.0.1" ports: [{ containerPort: 4180 }] args: ["--config=/etc/authproxy/authproxy.cfg"] name: "authproxy" volumeMounts: [{ name: "config-volume" mountPath: "/etc/authproxy" }] }] volumes: [{ name: "config-volume" configMap: { name: "authproxy" } }] } } } } } configMap: { authproxy: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "authproxy" } data: { "authproxy.cfg": """ # Google Auth Proxy Config File ## https://github.com/bitly/google_auth_proxy ## : to listen on for HTTP clients http_address = "0.0.0.0:4180" ## the OAuth Redirect URL. redirect_url = "https://auth.example.com/oauth2/callback" ## the http url(s) of the upstream endpoint. If multiple, routing is based on path upstreams = [ # frontend "http://frontend-waiter:7080/dpr/", "http://frontend-maitred:7080/ui/", "http://frontend-maitred:7080/ui", "http://frontend-maitred:7080/report/", "http://frontend-maitred:7080/report", "http://frontend-maitred:7080/static/", # kitchen "http://kitchen-chef:8080/visit", # infrastructure "http://download:7080/file/", "http://download:7080/archive", "http://tasks:7080/tasks", "http://tasks:7080/tasks/", ] ## pass HTTP Basic Auth, X-Forwarded-User and X-Forwarded-Email information to upstream pass_basic_auth = true request_logging = true ## Google Apps Domains to allow authentication for google_apps_domains = [ "example.com", ] email_domains = [ "example.com", ] ## The Google OAuth Client ID, Secret client_id = "---" client_secret = "---" ## Cookie Settings ## Secret - the seed string for secure cookies ## Domain - optional cookie domain to force cookies to (ie: .yourcompany.com) ## Expire - expire timeframe for cookie cookie_secret = "won't tell you" cookie_domain = ".example.com" cookie_https_only = true """ } } } // --- service: { goget: { apiVersion: "v1" kind: "Service" metadata: { name: "goget" labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.5.7" ports: [{ port: 443 targetPort: 7443 protocol: "TCP" name: "https" }] selector: { app: "goget" domain: "prod" component: "proxy" } } } } deployment: { goget: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "goget" } spec: { replicas: 1 template: { metadata: { labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "goget-secrets" } }] containers: [{ image: "gcr.io/myproj/goget:v0.5.1" ports: [{ containerPort: 7443 }] name: "goget" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } } } // --- service: { nginx: { apiVersion: "v1" kind: "Service" metadata: { name: "nginx" labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.4.5" ports: [{ port: 80 targetPort: 80 protocol: "TCP" name: "http" }, { port: 443 protocol: "TCP" name: "https" }] selector: { app: "nginx" domain: "prod" component: "proxy" } } } } deployment: { nginx: { apiVersion: "apps/v1" kind: "Deployment" metadata: { name: "nginx" } spec: { replicas: 1 template: { metadata: { labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "proxy-secrets" } }, { name: "config-volume" configMap: { name: "nginx" } }] containers: [{ image: "nginx:1.11.10-alpine" ports: [{ containerPort: 80 }, { containerPort: 443 }] name: "nginx" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }, { name: "config-volume" mountPath: "/etc/nginx/nginx.conf" subPath: "nginx.conf" }] }] } } } } } configMap: { nginx: { apiVersion: "v1" kind: "ConfigMap" metadata: { name: "nginx" } data: { "nginx.conf": """ events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; # needs to be high for some download jobs. keepalive_timeout 400; # proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; error_log /dev/stdout; # Disable POST body size constraints. We often deal with large # files. Especially docker containers may be large. client_max_body_size 0; upstream goget { server localhost:7070; } # Redirect incoming Google Cloud Storage notifications: server { listen 443 ssl; server_name notify.example.com notify2.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://tasks:7080; proxy_connect_timeout 1; } } server { listen 80; listen 443 ssl; server_name x.example.com example.io; location ~ "(/[^/]+)(/.*)?" { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost$1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } location / { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } server { listen 80; server_name www.example.com w.example.com; resolver 8.8.8.8; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$host.default.example.appspot.com/$request_uri; proxy_redirect http://$host.default.example.appspot.com/ /; } } server { # We could add the following line and the connection would still be SSL, # but it doesn't appear to be necessary. Seems saver this way. listen 80; listen 443 default ssl; server_name ~^(?.*)\\.example\\.com$; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://authproxy:4180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } } """ } } } tut_test.go:120: $ diff snapshot snapshot2 | wc tut_test.go:120: $ cat tut_test.go:120: $ cue fmt tut_test.go:353: Executing command: cue fmt tut_test.go:357: Args: ["fmt"] tut_test.go:120: $ cat tut_test.go:120: $ cue fmt tut_test.go:353: Executing command: cue fmt tut_test.go:357: Args: ["fmt"] tut_test.go:120: $ cat tut_test.go:120: $ cat tut_test.go:120: $ cat tut_test.go:120: $ cue trim ./... tut_test.go:353: Executing command: cue trim ./... tut_test.go:357: Args: ["trim" "./..."] tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 tut_test.go:120: $ head frontend/breaddispatcher/kube.cue tut_test.go:120: $ cue trim ./... -s tut_test.go:353: Executing command: cue trim ./... -s tut_test.go:357: Args: ["trim" "./..." "-s"] tut_test.go:120: $ head -7 frontend/breaddispatcher/kube.cue tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 tut_test.go:120: $ cat tut_test.go:120: $ cue fmt ./frontend tut_test.go:353: Executing command: cue fmt ./frontend tut_test.go:357: Args: ["fmt" "./frontend"] tut_test.go:120: $ cue eval -c ./... tut_test.go:353: Executing command: cue eval -c ./... tut_test.go:357: Args: ["eval" "-c" "./..."] service: {} deployment: {} daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} daemonSet: {} statefulSet: {} configMap: {} // --- service: { bartender: { apiVersion: "v1" kind: "Service" metadata: { name: "bartender" labels: { app: "bartender" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "bartender" domain: "prod" component: "frontend" } } } } deployment: { bartender: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "bartender" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/bartender:v0.1.34" ports: [{ containerPort: 7080 }] name: "bartender" args: [] }] } } } metadata: { name: "bartender" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { breaddispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "breaddispatcher" labels: { app: "breaddispatcher" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "breaddispatcher" domain: "prod" component: "frontend" } } } } deployment: { breaddispatcher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "breaddispatcher" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/breaddispatcher:v0.3.24" ports: [{ containerPort: 7080 }] name: "breaddispatcher" args: ["-etcd=etcd:2379", "-event-server=events:7788"] }] } } } metadata: { name: "breaddispatcher" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { host: { apiVersion: "v1" kind: "Service" metadata: { name: "host" labels: { app: "host" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "host" domain: "prod" component: "frontend" } } } } deployment: { host: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 2 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "host" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/host:v0.1.10" ports: [{ containerPort: 7080 }] name: "host" args: [] }] } } } metadata: { name: "host" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { maitred: { apiVersion: "v1" kind: "Service" metadata: { name: "maitred" labels: { app: "maitred" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "maitred" domain: "prod" component: "frontend" } } } } deployment: { maitred: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "maitred" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/maitred:v0.0.4" ports: [{ containerPort: 7080 }] name: "maitred" args: [] }] } } } metadata: { name: "maitred" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { valeter: { apiVersion: "v1" kind: "Service" metadata: { name: "valeter" labels: { app: "valeter" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 8080 protocol: "TCP" name: "http" targetPort: 8080 }] selector: { app: "valeter" domain: "prod" component: "frontend" } } } } deployment: { valeter: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "8080" } labels: { app: "valeter" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/valeter:v0.0.4" ports: [{ containerPort: 8080 }] name: "valeter" args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } metadata: { name: "valeter" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { waiter: { apiVersion: "v1" kind: "Service" metadata: { name: "waiter" labels: { app: "waiter" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "waiter" domain: "prod" component: "frontend" } } } } deployment: { waiter: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 5 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "waiter" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/waiter:v0.3.0" name: "waiter" ports: [{ containerPort: 7080 }] }] } } } metadata: { name: "waiter" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { waterdispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "waterdispatcher" labels: { app: "waterdispatcher" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" name: "http" targetPort: 7080 }] selector: { app: "waterdispatcher" domain: "prod" component: "frontend" } } } } deployment: { waterdispatcher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "waterdispatcher" domain: "prod" component: "frontend" } } spec: { containers: [{ image: "gcr.io/myproj/waterdispatcher:v0.0.48" ports: [{ containerPort: 7080 }] name: "waterdispatcher" args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } metadata: { name: "waterdispatcher" labels: { component: "frontend" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} daemonSet: {} statefulSet: {} configMap: {} // --- service: { download: { apiVersion: "v1" kind: "Service" metadata: { name: "download" labels: { app: "download" domain: "prod" component: "infra" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "download" domain: "prod" component: "infra" } } } } deployment: { download: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "download" domain: "prod" component: "infra" } } spec: { containers: [{ image: "gcr.io/myproj/download:v0.0.2" name: "download" ports: [{ containerPort: 7080 }] }] } } } metadata: { name: "download" labels: { component: "infra" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { etcd: { apiVersion: "v1" kind: "Service" metadata: { name: "etcd" labels: { app: "etcd" domain: "prod" component: "infra" } } spec: { clusterIP: "None" ports: [{ port: 2379 protocol: "TCP" targetPort: 2379 name: "client" }, { port: 2380 protocol: "TCP" name: "peer" targetPort: 2380 }] selector: { app: "etcd" domain: "prod" component: "infra" } } } } deployment: {} daemonSet: {} statefulSet: { etcd: { apiVersion: "apps/v1" kind: "StatefulSet" spec: { serviceName: "etcd" replicas: 3 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "2379" } labels: { app: "etcd" component: "infra" domain: "prod" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["etcd"] }] } topologyKey: "kubernetes.io/hostname" }] } } terminationGracePeriodSeconds: 10 containers: [{ image: "quay.io/coreos/etcd:v3.3.10" ports: [{ name: "client" containerPort: 2379 }, { name: "peer" containerPort: 2380 }] livenessProbe: { httpGet: { path: "/health" port: "client" } initialDelaySeconds: 30 } volumeMounts: [{ name: "etcd3" mountPath: "/data" }] env: [{ name: "ETCDCTL_API" value: "3" }, { name: "ETCD_AUTO_COMPACTION_RETENTION" value: "4" }, { name: "NAME" valueFrom: { fieldRef: { fieldPath: "metadata.name" } } }, { name: "IP" valueFrom: { fieldRef: { fieldPath: "status.podIP" } } }] command: ["/usr/local/bin/etcd"] name: "etcd" args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"] }] } } selector: {} volumeClaimTemplates: [{ metadata: { name: "etcd3" annotations: { "volume.alpha.kubernetes.io/storage-class": "default" } } spec: { accessModes: ["ReadWriteOnce"] resources: { requests: { storage: "10Gi" } } } }] } metadata: { name: "etcd" labels: { component: "infra" } } } } configMap: {} // --- service: { events: { apiVersion: "v1" kind: "Service" metadata: { name: "events" labels: { app: "events" domain: "prod" component: "infra" } } spec: { ports: [{ port: 7788 protocol: "TCP" name: "grpc" targetPort: 7788 }] selector: { app: "events" domain: "prod" component: "infra" } } } } deployment: { events: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 2 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "events" domain: "prod" component: "infra" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["events"] }] } topologyKey: "kubernetes.io/hostname" }] } } volumes: [{ name: "secret-volume" secret: { secretName: "biz-secrets" } }] containers: [{ image: "gcr.io/myproj/events:v0.1.31" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"] name: "events" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "events" labels: { component: "infra" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { tasks: { apiVersion: "v1" kind: "Service" metadata: { name: "tasks" labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4" ports: [{ port: 443 protocol: "TCP" name: "http" targetPort: 7443 }] selector: { app: "tasks" domain: "prod" component: "infra" } } } } deployment: { tasks: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ image: "gcr.io/myproj/tasks:v0.2.6" ports: [{ containerPort: 7080 }, { containerPort: 7443 }] name: "tasks" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "tasks" labels: { component: "infra" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { updater: { apiVersion: "v1" kind: "Service" metadata: { name: "updater" labels: { app: "updater" domain: "prod" component: "infra" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "updater" domain: "prod" component: "infra" } } } } deployment: { updater: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "updater" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-updater" secret: { secretName: "updater-secrets" } }] containers: [{ image: "gcr.io/myproj/updater:v0.1.0" volumeMounts: [{ mountPath: "/etc/certs" name: "secret-updater" }] ports: [{ containerPort: 8080 }] name: "updater" args: ["-key=/etc/certs/updater.pem"] }] } } } metadata: { name: "updater" labels: { component: "infra" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { watcher: { apiVersion: "v1" kind: "Service" metadata: { name: "watcher" labels: { app: "watcher" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4." ports: [{ port: 7788 protocol: "TCP" name: "http" targetPort: 7788 }] selector: { app: "watcher" domain: "prod" component: "infra" } } } } deployment: { watcher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "watcher" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ image: "gcr.io/myproj/watcher:v0.1.0" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] name: "watcher" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "watcher" labels: { component: "infra" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} daemonSet: {} statefulSet: {} configMap: {} // --- service: { caller: { apiVersion: "v1" kind: "Service" metadata: { name: "caller" labels: { app: "caller" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "caller" domain: "prod" component: "kitchen" } } } } deployment: { caller: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 3 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "caller" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "ssd-caller" gcePersistentDisk: { pdName: "ssd-caller" fsType: "ext4" } }, { name: "secret-caller" secret: { secretName: "caller-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/caller:v0.20.14" volumeMounts: [{ name: "ssd-caller" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-caller" readOnly: true }, { mountPath: "/sslcerts" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] name: "caller" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "caller" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { dishwasher: { apiVersion: "v1" kind: "Service" metadata: { name: "dishwasher" labels: { app: "dishwasher" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "dishwasher" domain: "prod" component: "kitchen" } } } } deployment: { dishwasher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 5 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "dishwasher" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "dishwasher-disk" gcePersistentDisk: { pdName: "dishwasher-disk" fsType: "ext4" } }, { name: "secret-dishwasher" secret: { secretName: "dishwasher-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "dishwasher-secrets" } }] containers: [{ image: "gcr.io/myproj/dishwasher:v0.2.13" volumeMounts: [{ name: "dishwasher-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-dishwasher" readOnly: true }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] name: "dishwasher" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "dishwasher" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { expiditer: { apiVersion: "v1" kind: "Service" metadata: { name: "expiditer" labels: { app: "expiditer" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "expiditer" domain: "prod" component: "kitchen" } } } } deployment: { expiditer: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "expiditer" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "expiditer-disk" gcePersistentDisk: { pdName: "expiditer-disk" fsType: "ext4" } }, { name: "secret-expiditer" secret: { secretName: "expiditer-secrets" } }] containers: [{ image: "gcr.io/myproj/expiditer:v0.5.34" volumeMounts: [{ name: "expiditer-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-expiditer" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] name: "expiditer" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "expiditer" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { headchef: { apiVersion: "v1" kind: "Service" metadata: { name: "headchef" labels: { app: "headchef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "headchef" domain: "prod" component: "kitchen" } } } } deployment: { headchef: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "headchef" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "headchef-disk" gcePersistentDisk: { pdName: "headchef-disk" fsType: "ext4" } }, { name: "secret-headchef" secret: { secretName: "headchef-secrets" } }] containers: [{ image: "gcr.io/myproj/headchef:v0.2.16" volumeMounts: [{ name: "headchef-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-headchef" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"] name: "headchef" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "headchef" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { linecook: { apiVersion: "v1" kind: "Service" metadata: { name: "linecook" labels: { app: "linecook" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "linecook" domain: "prod" component: "kitchen" } } } } deployment: { linecook: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "linecook" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "linecook-disk" gcePersistentDisk: { pdName: "linecook-disk" fsType: "ext4" } }, { name: "secret-kitchen" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/linecook:v0.1.42" volumeMounts: [{ name: "linecook-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-kitchen" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"] name: "linecook" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "linecook" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { pastrychef: { apiVersion: "v1" kind: "Service" metadata: { name: "pastrychef" labels: { app: "pastrychef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "pastrychef" domain: "prod" component: "kitchen" } } } } deployment: { pastrychef: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" } labels: { app: "pastrychef" domain: "prod" component: "kitchen" } } spec: { volumes: [{ name: "pastrychef-disk" gcePersistentDisk: { pdName: "pastrychef-disk" fsType: "ext4" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/pastrychef:v0.1.15" volumeMounts: [{ name: "pastrychef-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"] name: "pastrychef" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "pastrychef" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { souschef: { apiVersion: "v1" kind: "Service" metadata: { name: "souschef" labels: { app: "souschef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "souschef" domain: "prod" component: "kitchen" } } } } deployment: { souschef: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "souschef" domain: "prod" component: "kitchen" } } spec: { containers: [{ image: "gcr.io/myproj/souschef:v0.5.3" ports: [{ containerPort: 8080 }] name: "souschef" livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "souschef" labels: { component: "kitchen" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} daemonSet: {} statefulSet: {} configMap: {} // --- service: { alertmanager: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" "prometheus.io/path": "/metrics" } name: "alertmanager" labels: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } } spec: { ports: [{ port: 9093 protocol: "TCP" name: "main" targetPort: 9093 }] selector: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } } } } deployment: { alertmanager: { apiVersion: "apps/v1" kind: "Deployment" spec: { selector: { matchLabels: { app: "alertmanager" } } replicas: 1 template: { metadata: { name: "alertmanager" labels: { app: "alertmanager" domain: "prod" component: "mon" } } spec: { containers: [{ image: "prom/alertmanager:v0.15.2" args: ["--config.file=/etc/alertmanager/alerts.yaml", "--storage.path=/alertmanager", "--web.external-url=https://alertmanager.example.com"] ports: [{ name: "alertmanager" containerPort: 9093 }] name: "alertmanager" volumeMounts: [{ name: "config-volume" mountPath: "/etc/alertmanager" }, { name: "alertmanager" mountPath: "/alertmanager" }] }] volumes: [{ name: "config-volume" configMap: { name: "alertmanager" } }, { name: "alertmanager" emptyDir: {} }] } } } metadata: { name: "alertmanager" labels: { component: "mon" } } } } daemonSet: {} statefulSet: {} configMap: { alertmanager: { apiVersion: "v1" kind: "ConfigMap" data: { "alerts.yaml": """ receivers: - name: pager slack_configs: - channel: '#cloudmon' text: |- {{ range .Alerts }}{{ .Annotations.description }} {{ end }} send_resolved: true route: receiver: pager group_by: - alertname - cluster """ } metadata: { name: "alertmanager" labels: { component: "mon" } } } } // --- service: { grafana: { apiVersion: "v1" kind: "Service" metadata: { name: "grafana" labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { ports: [{ name: "grafana" port: 3000 protocol: "TCP" targetPort: 3000 }] selector: { app: "grafana" domain: "prod" component: "mon" } } } } deployment: { grafana: { apiVersion: "apps/v1" kind: "Deployment" metadata: { labels: { app: "grafana" component: "mon" } name: "grafana" } spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { volumes: [{ name: "grafana-volume" gcePersistentDisk: { pdName: "grafana-volume" fsType: "ext4" } }] containers: [{ image: "grafana/grafana:4.5.2" ports: [{ containerPort: 8080 }] resources: { limits: { cpu: "100m" memory: "100Mi" } requests: { cpu: "100m" memory: "100Mi" } } env: [{ name: "GF_AUTH_BASIC_ENABLED" value: "false" }, { name: "GF_AUTH_ANONYMOUS_ENABLED" value: "true" }, { name: "GF_AUTH_ANONYMOUS_ORG_ROLE" value: "admin" }] name: "grafana" volumeMounts: [{ name: "grafana-volume" mountPath: "/var/lib/grafana" }] }] } } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { "node-exporter": { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } name: "node-exporter" labels: { app: "node-exporter" domain: "prod" component: "mon" } } spec: { type: "ClusterIP" clusterIP: "None" ports: [{ port: 9100 protocol: "TCP" name: "metrics" targetPort: 9100 }] selector: { app: "node-exporter" domain: "prod" component: "mon" } } } } deployment: {} daemonSet: { "node-exporter": { apiVersion: "apps/v1" kind: "DaemonSet" spec: { template: { metadata: { name: "node-exporter" labels: { app: "node-exporter" component: "mon" domain: "prod" } } spec: { hostNetwork: true hostPID: true containers: [{ image: "quay.io/prometheus/node-exporter:v0.16.0" args: ["--path.procfs=/host/proc", "--path.sysfs=/host/sys"] ports: [{ containerPort: 9100 hostPort: 9100 name: "scrape" }] resources: { requests: { memory: "30Mi" cpu: "100m" } limits: { memory: "50Mi" cpu: "200m" } } name: "node-exporter" volumeMounts: [{ name: "proc" readOnly: true mountPath: "/host/proc" }, { name: "sys" readOnly: true mountPath: "/host/sys" }] }] volumes: [{ name: "proc" hostPath: { path: "/proc" } }, { name: "sys" hostPath: { path: "/sys" } }] } } selector: {} } metadata: { name: "node-exporter" labels: { component: "mon" } } } } statefulSet: {} configMap: {} // --- service: { prometheus: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } name: "prometheus" labels: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } } spec: { type: "NodePort" ports: [{ port: 9090 protocol: "TCP" name: "main" nodePort: 30900 targetPort: 9090 }] selector: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } } } } deployment: { prometheus: { apiVersion: "apps/v1" kind: "Deployment" spec: { strategy: { rollingUpdate: { maxSurge: 0 maxUnavailable: 1 } type: "RollingUpdate" } selector: { matchLabels: { app: "prometheus" } } replicas: 1 template: { metadata: { name: "prometheus" labels: { app: "prometheus" domain: "prod" component: "mon" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ image: "prom/prometheus:v2.4.3" args: ["--config.file=/etc/prometheus/prometheus.yml", "--web.external-url=https://prometheus.example.com"] ports: [{ name: "web" containerPort: 9090 }] name: "prometheus" volumeMounts: [{ name: "config-volume" mountPath: "/etc/prometheus" }] }] volumes: [{ name: "config-volume" configMap: { name: "prometheus" } }] } } } metadata: { name: "prometheus" labels: { component: "mon" } } } } daemonSet: {} statefulSet: {} configMap: { prometheus: { apiVersion: "v1" kind: "ConfigMap" data: { "alert.rules": """ groups: - name: rules.yaml rules: - alert: InstanceDown expr: up == 0 for: 30s labels: severity: page annotations: description: '{{$labels.app}} of job {{ $labels.job }} has been down for more than 30 seconds.' summary: Instance {{$labels.app}} down - alert: InsufficientPeers expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) for: 3m labels: severity: page annotations: description: If one more etcd peer goes down the cluster will be unavailable summary: etcd cluster small - alert: EtcdNoMaster expr: sum(etcd_server_has_leader{app="etcd"}) == 0 for: 1s labels: severity: page annotations: summary: No ETCD master elected. - alert: PodRestart expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m])) > 2 for: 1m labels: severity: page annotations: description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }} times in 5m.' summary: Pod for {{$labels.container}} restarts too often """ "prometheus.yml": """ global: scrape_interval: 15s rule_files: - /etc/prometheus/alert.rules alerting: alertmanagers: - scheme: http static_configs: - targets: - alertmanager:9093 scrape_configs: - job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https - job_name: kubernetes-nodes scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics - job_name: kubernetes-cadvisor scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme action: replace target_label: __scheme__ regex: (https?) - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port action: replace target_label: __address__ regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name action: replace target_label: kubernetes_name - job_name: kubernetes-services metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: service relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __address__ target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name target_label: kubernetes_name - job_name: kubernetes-ingresses metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: ingress relabel_configs: - source_labels: - __meta_kubernetes_ingress_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __meta_kubernetes_ingress_scheme - __address__ - __meta_kubernetes_ingress_path regex: (.+);(.+);(.+) replacement: ${1}://${2}${3} target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_ingress_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_ingress_name target_label: kubernetes_name - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name """ } metadata: { name: "prometheus" labels: { component: "mon" } } } } // --- service: {} deployment: {} daemonSet: {} statefulSet: {} configMap: {} // --- service: { authproxy: { apiVersion: "v1" kind: "Service" metadata: { name: "authproxy" labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { ports: [{ port: 4180 protocol: "TCP" targetPort: 4180 name: "client" }] selector: { app: "authproxy" domain: "prod" component: "proxy" } } } } deployment: { authproxy: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { containers: [{ image: "skippy/oauth2_proxy:2.0.1" ports: [{ containerPort: 4180 }] args: ["--config=/etc/authproxy/authproxy.cfg"] name: "authproxy" volumeMounts: [{ name: "config-volume" mountPath: "/etc/authproxy" }] }] volumes: [{ name: "config-volume" configMap: { name: "authproxy" } }] } } } metadata: { name: "authproxy" labels: { component: "proxy" } } } } daemonSet: {} statefulSet: {} configMap: { authproxy: { apiVersion: "v1" kind: "ConfigMap" data: { "authproxy.cfg": """ # Google Auth Proxy Config File ## https://github.com/bitly/google_auth_proxy ## : to listen on for HTTP clients http_address = "0.0.0.0:4180" ## the OAuth Redirect URL. redirect_url = "https://auth.example.com/oauth2/callback" ## the http url(s) of the upstream endpoint. If multiple, routing is based on path upstreams = [ # frontend "http://frontend-waiter:7080/dpr/", "http://frontend-maitred:7080/ui/", "http://frontend-maitred:7080/ui", "http://frontend-maitred:7080/report/", "http://frontend-maitred:7080/report", "http://frontend-maitred:7080/static/", # kitchen "http://kitchen-chef:8080/visit", # infrastructure "http://download:7080/file/", "http://download:7080/archive", "http://tasks:7080/tasks", "http://tasks:7080/tasks/", ] ## pass HTTP Basic Auth, X-Forwarded-User and X-Forwarded-Email information to upstream pass_basic_auth = true request_logging = true ## Google Apps Domains to allow authentication for google_apps_domains = [ "example.com", ] email_domains = [ "example.com", ] ## The Google OAuth Client ID, Secret client_id = "---" client_secret = "---" ## Cookie Settings ## Secret - the seed string for secure cookies ## Domain - optional cookie domain to force cookies to (ie: .yourcompany.com) ## Expire - expire timeframe for cookie cookie_secret = "won't tell you" cookie_domain = ".example.com" cookie_https_only = true """ } metadata: { name: "authproxy" labels: { component: "proxy" } } } } // --- service: { goget: { apiVersion: "v1" kind: "Service" metadata: { name: "goget" labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.5.7" ports: [{ port: 443 protocol: "TCP" name: "https" targetPort: 7443 }] selector: { app: "goget" domain: "prod" component: "proxy" } } } } deployment: { goget: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "goget-secrets" } }] containers: [{ image: "gcr.io/myproj/goget:v0.5.1" ports: [{ containerPort: 7443 }] name: "goget" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "goget" labels: { component: "proxy" } } } } daemonSet: {} statefulSet: {} configMap: {} // --- service: { nginx: { apiVersion: "v1" kind: "Service" metadata: { name: "nginx" labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.4.5" ports: [{ port: 80 protocol: "TCP" name: "http" targetPort: 80 }, { port: 443 protocol: "TCP" name: "https" targetPort: 443 }] selector: { app: "nginx" domain: "prod" component: "proxy" } } } } deployment: { nginx: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "proxy-secrets" } }, { name: "config-volume" configMap: { name: "nginx" } }] containers: [{ image: "nginx:1.11.10-alpine" ports: [{ containerPort: 80 }, { containerPort: 443 }] name: "nginx" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }, { name: "config-volume" mountPath: "/etc/nginx/nginx.conf" subPath: "nginx.conf" }] }] } } } metadata: { name: "nginx" labels: { component: "proxy" } } } } daemonSet: {} statefulSet: {} configMap: { nginx: { apiVersion: "v1" kind: "ConfigMap" data: { "nginx.conf": """ events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; # needs to be high for some download jobs. keepalive_timeout 400; # proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; error_log /dev/stdout; # Disable POST body size constraints. We often deal with large # files. Especially docker containers may be large. client_max_body_size 0; upstream goget { server localhost:7070; } # Redirect incoming Google Cloud Storage notifications: server { listen 443 ssl; server_name notify.example.com notify2.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://tasks:7080; proxy_connect_timeout 1; } } server { listen 80; listen 443 ssl; server_name x.example.com example.io; location ~ "(/[^/]+)(/.*)?" { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost$1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } location / { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } server { listen 80; server_name www.example.com w.example.com; resolver 8.8.8.8; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$host.default.example.appspot.com/$request_uri; proxy_redirect http://$host.default.example.appspot.com/ /; } } server { # We could add the following line and the connection would still be SSL, # but it doesn't appear to be necessary. Seems saver this way. listen 80; listen 443 default ssl; server_name ~^(?.*)\\.example\\.com$; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://authproxy:4180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } } """ } metadata: { name: "nginx" labels: { component: "proxy" } } } } tut_test.go:120: $ diff snapshot snapshot2 tut_test.go:120: $ cp snapshot2 snapshot tut_test.go:120: $ cue trim -s ./frontend/... tut_test.go:353: Executing command: cue trim -s ./frontend/... tut_test.go:357: Args: ["trim" "-s" "./frontend/..."] tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 tut_test.go:120: $ cat tut_test.go:120: $ cue fmt ./kitchen tut_test.go:353: Executing command: cue fmt ./kitchen tut_test.go:357: Args: ["fmt" "./kitchen"] tut_test.go:120: $ cat tut_test.go:120: $ cat tut_test.go:120: $ cue fmt ./kitchen/... tut_test.go:353: Executing command: cue fmt ./kitchen/... tut_test.go:357: Args: ["fmt" "./kitchen/..."] tut_test.go:120: $ cue trim -s ./kitchen/... tut_test.go:353: Executing command: cue trim -s ./kitchen/... tut_test.go:357: Args: ["trim" "-s" "./kitchen/..."] tut_test.go:120: $ cue eval ./... tut_test.go:353: Executing command: cue eval ./... tut_test.go:357: Args: ["eval" "./..."] service: {} deployment: {} #Component: string daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { bartender: { apiVersion: "v1" kind: "Service" metadata: { name: "bartender" labels: { app: "bartender" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "bartender" domain: "prod" component: "frontend" } } } } deployment: { bartender: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "bartender" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ image: "gcr.io/myproj/bartender:v0.1.34" name: "bartender" ports: [{ containerPort: 7080 }] args: [] }] } } } metadata: { name: "bartender" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { breaddispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "breaddispatcher" labels: { app: "breaddispatcher" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "breaddispatcher" domain: "prod" component: "frontend" } } } } deployment: { breaddispatcher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "breaddispatcher" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ image: "gcr.io/myproj/breaddispatcher:v0.3.24" name: "breaddispatcher" ports: [{ containerPort: 7080 }] args: ["-etcd=etcd:2379", "-event-server=events:7788"] }] } } } metadata: { name: "breaddispatcher" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { host: { apiVersion: "v1" kind: "Service" metadata: { name: "host" labels: { app: "host" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "host" domain: "prod" component: "frontend" } } } } deployment: { host: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 2 selector: {} template: { metadata: { labels: { app: "host" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ image: "gcr.io/myproj/host:v0.1.10" name: "host" ports: [{ containerPort: 7080 }] args: [] }] } } } metadata: { name: "host" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { maitred: { apiVersion: "v1" kind: "Service" metadata: { name: "maitred" labels: { app: "maitred" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "maitred" domain: "prod" component: "frontend" } } } } deployment: { maitred: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "maitred" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ image: "gcr.io/myproj/maitred:v0.0.4" name: "maitred" ports: [{ containerPort: 7080 }] args: [] }] } } } metadata: { name: "maitred" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { valeter: { apiVersion: "v1" kind: "Service" metadata: { name: "valeter" labels: { app: "valeter" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 8080 protocol: "TCP" name: "http" targetPort: 8080 }] selector: { app: "valeter" domain: "prod" component: "frontend" } } } } deployment: { valeter: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "valeter" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "8080" } } spec: { containers: [{ image: "gcr.io/myproj/valeter:v0.0.4" ports: [{ containerPort: 8080 }] name: "valeter" args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } metadata: { name: "valeter" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { waiter: { apiVersion: "v1" kind: "Service" metadata: { name: "waiter" labels: { app: "waiter" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "waiter" domain: "prod" component: "frontend" } } } } deployment: { waiter: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 5 selector: {} template: { metadata: { labels: { app: "waiter" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ image: "gcr.io/myproj/waiter:v0.3.0" name: "waiter" ports: [{ containerPort: 7080 }] }] } } } metadata: { name: "waiter" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: { waterdispatcher: { apiVersion: "v1" kind: "Service" metadata: { name: "waterdispatcher" labels: { app: "waterdispatcher" domain: "prod" component: "frontend" } } spec: { ports: [{ port: 7080 protocol: "TCP" name: "http" targetPort: 7080 }] selector: { app: "waterdispatcher" domain: "prod" component: "frontend" } } } } deployment: { waterdispatcher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "waterdispatcher" domain: "prod" component: "frontend" } annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } } spec: { containers: [{ image: "gcr.io/myproj/waterdispatcher:v0.0.48" name: "waterdispatcher" ports: [{ containerPort: 7080 }] args: ["-http=:8080", "-etcd=etcd:2379"] }] } } } metadata: { name: "waterdispatcher" labels: { component: "frontend" } } } } #Component: "frontend" daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} #Component: "infra" daemonSet: {} statefulSet: {} configMap: {} // --- service: { download: { apiVersion: "v1" kind: "Service" metadata: { name: "download" labels: { app: "download" domain: "prod" component: "infra" } } spec: { ports: [{ port: 7080 protocol: "TCP" targetPort: 7080 name: "client" }] selector: { app: "download" domain: "prod" component: "infra" } } } } deployment: { download: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "download" domain: "prod" component: "infra" } } spec: { containers: [{ image: "gcr.io/myproj/download:v0.0.2" name: "download" ports: [{ containerPort: 7080 }] }] } } } metadata: { name: "download" labels: { component: "infra" } } } } #Component: "infra" daemonSet: {} statefulSet: {} configMap: {} // --- service: { etcd: { apiVersion: "v1" kind: "Service" metadata: { name: "etcd" labels: { app: "etcd" domain: "prod" component: "infra" } } spec: { clusterIP: "None" ports: [{ port: 2379 protocol: "TCP" targetPort: 2379 name: "client" }, { port: 2380 protocol: "TCP" name: "peer" targetPort: 2380 }] selector: { app: "etcd" domain: "prod" component: "infra" } } } } deployment: {} #Component: "infra" daemonSet: {} statefulSet: { etcd: { apiVersion: "apps/v1" kind: "StatefulSet" spec: { serviceName: "etcd" replicas: 3 template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "2379" } labels: { app: "etcd" component: "infra" domain: "prod" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["etcd"] }] } topologyKey: "kubernetes.io/hostname" }] } } terminationGracePeriodSeconds: 10 containers: [{ image: "quay.io/coreos/etcd:v3.3.10" ports: [{ name: "client" containerPort: 2379 }, { name: "peer" containerPort: 2380 }] livenessProbe: { httpGet: { path: "/health" port: "client" } initialDelaySeconds: 30 } volumeMounts: [{ name: "etcd3" mountPath: "/data" }] env: [{ name: "ETCDCTL_API" value: "3" }, { name: "ETCD_AUTO_COMPACTION_RETENTION" value: "4" }, { name: "NAME" valueFrom: { fieldRef: { fieldPath: "metadata.name" } } }, { name: "IP" valueFrom: { fieldRef: { fieldPath: "status.podIP" } } }] command: ["/usr/local/bin/etcd"] name: "etcd" args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"] }] } } selector: {} volumeClaimTemplates: [{ metadata: { name: "etcd3" annotations: { "volume.alpha.kubernetes.io/storage-class": "default" } } spec: { accessModes: ["ReadWriteOnce"] resources: { requests: { storage: "10Gi" } } } }] } metadata: { name: "etcd" labels: { component: "infra" } } } } configMap: {} // --- service: { events: { apiVersion: "v1" kind: "Service" metadata: { name: "events" labels: { app: "events" domain: "prod" component: "infra" } } spec: { ports: [{ port: 7788 protocol: "TCP" name: "grpc" targetPort: 7788 }] selector: { app: "events" domain: "prod" component: "infra" } } } } deployment: { events: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 2 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "events" domain: "prod" component: "infra" } } spec: { affinity: { podAntiAffinity: { requiredDuringSchedulingIgnoredDuringExecution: [{ labelSelector: { matchExpressions: [{ key: "app" operator: "In" values: ["events"] }] } topologyKey: "kubernetes.io/hostname" }] } } volumes: [{ name: "secret-volume" secret: { secretName: "biz-secrets" } }] containers: [{ image: "gcr.io/myproj/events:v0.1.31" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"] name: "events" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "events" labels: { component: "infra" } } } } #Component: "infra" daemonSet: {} statefulSet: {} configMap: {} // --- service: { tasks: { apiVersion: "v1" kind: "Service" metadata: { name: "tasks" labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4" ports: [{ port: 443 protocol: "TCP" name: "http" targetPort: 7443 }] selector: { app: "tasks" domain: "prod" component: "infra" } } } } deployment: { tasks: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { annotations: { "prometheus.io.scrape": "true" "prometheus.io.port": "7080" } labels: { app: "tasks" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ image: "gcr.io/myproj/tasks:v0.2.6" ports: [{ containerPort: 7080 }, { containerPort: 7443 }] name: "tasks" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "tasks" labels: { component: "infra" } } } } #Component: "infra" daemonSet: {} statefulSet: {} configMap: {} // --- service: { updater: { apiVersion: "v1" kind: "Service" metadata: { name: "updater" labels: { app: "updater" domain: "prod" component: "infra" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "updater" domain: "prod" component: "infra" } } } } deployment: { updater: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "updater" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-updater" secret: { secretName: "updater-secrets" } }] containers: [{ image: "gcr.io/myproj/updater:v0.1.0" volumeMounts: [{ mountPath: "/etc/certs" name: "secret-updater" }] ports: [{ containerPort: 8080 }] name: "updater" args: ["-key=/etc/certs/updater.pem"] }] } } } metadata: { name: "updater" labels: { component: "infra" } } } } #Component: "infra" daemonSet: {} statefulSet: {} configMap: {} // --- service: { watcher: { apiVersion: "v1" kind: "Service" metadata: { name: "watcher" labels: { app: "watcher" domain: "prod" component: "infra" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.2.3.4." ports: [{ port: 7788 protocol: "TCP" name: "http" targetPort: 7788 }] selector: { app: "watcher" domain: "prod" component: "infra" } } } } deployment: { watcher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "watcher" domain: "prod" component: "infra" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "star-example-com-secrets" } }] containers: [{ image: "gcr.io/myproj/watcher:v0.1.0" ports: [{ containerPort: 7080 }, { containerPort: 7788 }] name: "watcher" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "watcher" labels: { component: "infra" } } } } #Component: "infra" daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { caller: { apiVersion: "v1" kind: "Service" metadata: { name: "caller" labels: { app: "caller" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "caller" domain: "prod" component: "kitchen" } } } } deployment: { caller: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 3 selector: {} template: { metadata: { labels: { app: "caller" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "ssd-caller" gcePersistentDisk: { pdName: "ssd-caller" fsType: "ext4" } }, { name: "secret-caller" secret: { secretName: "caller-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/caller:v0.20.14" volumeMounts: [{ name: "ssd-caller" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-caller" readOnly: true }, { mountPath: "/sslcerts" name: "secret-ssh-key" readOnly: true }] name: "caller" ports: [{ containerPort: 8080 }] args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "caller" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { dishwasher: { apiVersion: "v1" kind: "Service" metadata: { name: "dishwasher" labels: { app: "dishwasher" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "dishwasher" domain: "prod" component: "kitchen" } } } } deployment: { dishwasher: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 5 selector: {} template: { metadata: { labels: { app: "dishwasher" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "dishwasher-disk" gcePersistentDisk: { pdName: "dishwasher-disk" fsType: "ext4" } }, { name: "secret-dishwasher" secret: { secretName: "dishwasher-secrets" } }, { name: "secret-ssh-key" secret: { secretName: "dishwasher-secrets" } }] containers: [{ image: "gcr.io/myproj/dishwasher:v0.2.13" volumeMounts: [{ name: "dishwasher-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-dishwasher" readOnly: true }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] name: "dishwasher" ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "dishwasher" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { expiditer: { apiVersion: "v1" kind: "Service" metadata: { name: "expiditer" labels: { app: "expiditer" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "expiditer" domain: "prod" component: "kitchen" } } } } deployment: { expiditer: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "expiditer" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "expiditer-disk" gcePersistentDisk: { pdName: "expiditer-disk" fsType: "ext4" } }, { name: "secret-expiditer" secret: { secretName: "expiditer-secrets" } }] containers: [{ image: "gcr.io/myproj/expiditer:v0.5.34" name: "expiditer" ports: [{ containerPort: 8080 }] volumeMounts: [{ name: "expiditer-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-expiditer" readOnly: true }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "expiditer" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { headchef: { apiVersion: "v1" kind: "Service" metadata: { name: "headchef" labels: { app: "headchef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "headchef" domain: "prod" component: "kitchen" } } } } deployment: { headchef: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "headchef" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "headchef-disk" gcePersistentDisk: { pdName: "headchef-disk" fsType: "ext4" } }, { name: "secret-headchef" secret: { secretName: "headchef-secrets" } }] containers: [{ image: "gcr.io/myproj/headchef:v0.2.16" volumeMounts: [{ name: "headchef-disk" mountPath: "/logs" }, { mountPath: "/sslcerts" name: "secret-headchef" readOnly: true }] name: "headchef" ports: [{ containerPort: 8080 }] args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "headchef" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { linecook: { apiVersion: "v1" kind: "Service" metadata: { name: "linecook" labels: { app: "linecook" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "linecook" domain: "prod" component: "kitchen" } } } } deployment: { linecook: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "linecook" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "linecook-disk" gcePersistentDisk: { pdName: "linecook-disk" fsType: "ext4" } }, { name: "secret-kitchen" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/linecook:v0.1.42" volumeMounts: [{ name: "linecook-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-kitchen" readOnly: true }] name: "linecook" ports: [{ containerPort: 8080 }] args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "linecook" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { pastrychef: { apiVersion: "v1" kind: "Service" metadata: { name: "pastrychef" labels: { app: "pastrychef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "pastrychef" domain: "prod" component: "kitchen" } } } } deployment: { pastrychef: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "pastrychef" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { volumes: [{ name: "pastrychef-disk" gcePersistentDisk: { pdName: "pastrychef-disk" fsType: "ext4" } }, { name: "secret-ssh-key" secret: { secretName: "secrets" } }] containers: [{ image: "gcr.io/myproj/pastrychef:v0.1.15" volumeMounts: [{ name: "pastrychef-disk" mountPath: "/logs" }, { mountPath: "/etc/certs" name: "secret-ssh-key" readOnly: true }] name: "pastrychef" ports: [{ containerPort: 8080 }] args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "pastrychef" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: { souschef: { apiVersion: "v1" kind: "Service" metadata: { name: "souschef" labels: { app: "souschef" domain: "prod" component: "kitchen" } } spec: { ports: [{ port: 8080 protocol: "TCP" targetPort: 8080 name: "client" }] selector: { app: "souschef" domain: "prod" component: "kitchen" } } } } deployment: { souschef: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "souschef" domain: "prod" component: "kitchen" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ image: "gcr.io/myproj/souschef:v0.5.3" name: "souschef" ports: [{ containerPort: 8080 }] livenessProbe: { httpGet: { path: "/debug/health" port: 8080 } initialDelaySeconds: 40 periodSeconds: 3 } }] } } } metadata: { name: "souschef" labels: { component: "kitchen" } } } } #Component: "kitchen" daemonSet: {} statefulSet: {} configMap: {} // --- service: {} deployment: {} #Component: "mon" daemonSet: {} statefulSet: {} configMap: {} // --- service: { alertmanager: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" "prometheus.io/path": "/metrics" } name: "alertmanager" labels: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } } spec: { ports: [{ port: 9093 protocol: "TCP" name: "main" targetPort: 9093 }] selector: { name: "alertmanager" app: "alertmanager" domain: "prod" component: "mon" } } } } deployment: { alertmanager: { apiVersion: "apps/v1" kind: "Deployment" spec: { selector: { matchLabels: { app: "alertmanager" } } replicas: 1 template: { metadata: { name: "alertmanager" labels: { app: "alertmanager" domain: "prod" component: "mon" } } spec: { containers: [{ image: "prom/alertmanager:v0.15.2" args: ["--config.file=/etc/alertmanager/alerts.yaml", "--storage.path=/alertmanager", "--web.external-url=https://alertmanager.example.com"] ports: [{ name: "alertmanager" containerPort: 9093 }] name: "alertmanager" volumeMounts: [{ name: "config-volume" mountPath: "/etc/alertmanager" }, { name: "alertmanager" mountPath: "/alertmanager" }] }] volumes: [{ name: "config-volume" configMap: { name: "alertmanager" } }, { name: "alertmanager" emptyDir: {} }] } } } metadata: { name: "alertmanager" labels: { component: "mon" } } } } #Component: "mon" daemonSet: {} statefulSet: {} configMap: { alertmanager: { apiVersion: "v1" kind: "ConfigMap" data: { "alerts.yaml": """ receivers: - name: pager slack_configs: - channel: '#cloudmon' text: |- {{ range .Alerts }}{{ .Annotations.description }} {{ end }} send_resolved: true route: receiver: pager group_by: - alertname - cluster """ } metadata: { name: "alertmanager" labels: { component: "mon" } } } } // --- service: { grafana: { apiVersion: "v1" kind: "Service" metadata: { name: "grafana" labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { ports: [{ name: "grafana" port: 3000 protocol: "TCP" targetPort: 3000 }] selector: { app: "grafana" domain: "prod" component: "mon" } } } } deployment: { grafana: { apiVersion: "apps/v1" kind: "Deployment" metadata: { labels: { app: "grafana" component: "mon" } name: "grafana" } spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "grafana" domain: "prod" component: "mon" } } spec: { volumes: [{ name: "grafana-volume" gcePersistentDisk: { pdName: "grafana-volume" fsType: "ext4" } }] containers: [{ image: "grafana/grafana:4.5.2" ports: [{ containerPort: 8080 }] resources: { limits: { cpu: "100m" memory: "100Mi" } requests: { cpu: "100m" memory: "100Mi" } } env: [{ name: "GF_AUTH_BASIC_ENABLED" value: "false" }, { name: "GF_AUTH_ANONYMOUS_ENABLED" value: "true" }, { name: "GF_AUTH_ANONYMOUS_ORG_ROLE" value: "admin" }] name: "grafana" volumeMounts: [{ name: "grafana-volume" mountPath: "/var/lib/grafana" }] }] } } } } } #Component: "mon" daemonSet: {} statefulSet: {} configMap: {} // --- service: { "node-exporter": { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } name: "node-exporter" labels: { app: "node-exporter" domain: "prod" component: "mon" } } spec: { type: "ClusterIP" clusterIP: "None" ports: [{ port: 9100 protocol: "TCP" name: "metrics" targetPort: 9100 }] selector: { app: "node-exporter" domain: "prod" component: "mon" } } } } deployment: {} #Component: "mon" daemonSet: { "node-exporter": { apiVersion: "apps/v1" kind: "DaemonSet" spec: { template: { metadata: { name: "node-exporter" labels: { app: "node-exporter" component: "mon" domain: "prod" } } spec: { hostNetwork: true hostPID: true containers: [{ image: "quay.io/prometheus/node-exporter:v0.16.0" args: ["--path.procfs=/host/proc", "--path.sysfs=/host/sys"] ports: [{ containerPort: 9100 hostPort: 9100 name: "scrape" }] resources: { requests: { memory: "30Mi" cpu: "100m" } limits: { memory: "50Mi" cpu: "200m" } } name: "node-exporter" volumeMounts: [{ name: "proc" readOnly: true mountPath: "/host/proc" }, { name: "sys" readOnly: true mountPath: "/host/sys" }] }] volumes: [{ name: "proc" hostPath: { path: "/proc" } }, { name: "sys" hostPath: { path: "/sys" } }] } } selector: {} } metadata: { name: "node-exporter" labels: { component: "mon" } } } } statefulSet: {} configMap: {} // --- service: { prometheus: { apiVersion: "v1" kind: "Service" metadata: { annotations: { "prometheus.io/scrape": "true" } name: "prometheus" labels: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } } spec: { type: "NodePort" ports: [{ port: 9090 protocol: "TCP" name: "main" nodePort: 30900 targetPort: 9090 }] selector: { name: "prometheus" app: "prometheus" domain: "prod" component: "mon" } } } } deployment: { prometheus: { apiVersion: "apps/v1" kind: "Deployment" spec: { strategy: { rollingUpdate: { maxSurge: 0 maxUnavailable: 1 } type: "RollingUpdate" } selector: { matchLabels: { app: "prometheus" } } replicas: 1 template: { metadata: { name: "prometheus" labels: { app: "prometheus" domain: "prod" component: "mon" } annotations: { "prometheus.io.scrape": "true" } } spec: { containers: [{ image: "prom/prometheus:v2.4.3" args: ["--config.file=/etc/prometheus/prometheus.yml", "--web.external-url=https://prometheus.example.com"] ports: [{ name: "web" containerPort: 9090 }] name: "prometheus" volumeMounts: [{ name: "config-volume" mountPath: "/etc/prometheus" }] }] volumes: [{ name: "config-volume" configMap: { name: "prometheus" } }] } } } metadata: { name: "prometheus" labels: { component: "mon" } } } } #Component: "mon" daemonSet: {} statefulSet: {} configMap: { prometheus: { apiVersion: "v1" kind: "ConfigMap" data: { "alert.rules": """ groups: - name: rules.yaml rules: - alert: InstanceDown expr: up == 0 for: 30s labels: severity: page annotations: description: '{{$labels.app}} of job {{ $labels.job }} has been down for more than 30 seconds.' summary: Instance {{$labels.app}} down - alert: InsufficientPeers expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) for: 3m labels: severity: page annotations: description: If one more etcd peer goes down the cluster will be unavailable summary: etcd cluster small - alert: EtcdNoMaster expr: sum(etcd_server_has_leader{app="etcd"}) == 0 for: 1s labels: severity: page annotations: summary: No ETCD master elected. - alert: PodRestart expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m])) > 2 for: 1m labels: severity: page annotations: description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }} times in 5m.' summary: Pod for {{$labels.container}} restarts too often """ "prometheus.yml": """ global: scrape_interval: 15s rule_files: - /etc/prometheus/alert.rules alerting: alertmanagers: - scheme: http static_configs: - targets: - alertmanager:9093 scrape_configs: - job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https - job_name: kubernetes-nodes scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics - job_name: kubernetes-cadvisor scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: - __meta_kubernetes_node_name regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme action: replace target_label: __scheme__ regex: (https?) - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port action: replace target_label: __address__ regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name action: replace target_label: kubernetes_name - job_name: kubernetes-services metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: service relabel_configs: - source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __address__ target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_service_name target_label: kubernetes_name - job_name: kubernetes-ingresses metrics_path: /probe params: module: - http_2xx kubernetes_sd_configs: - role: ingress relabel_configs: - source_labels: - __meta_kubernetes_ingress_annotation_prometheus_io_probe action: keep regex: true - source_labels: - __meta_kubernetes_ingress_scheme - __address__ - __meta_kubernetes_ingress_path regex: (.+);(.+);(.+) replacement: ${1}://${2}${3} target_label: __param_target - target_label: __address__ replacement: blackbox-exporter.example.com:9115 - source_labels: - __param_target target_label: app - action: labelmap regex: __meta_kubernetes_ingress_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_ingress_name target_label: kubernetes_name - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: true - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: (.+) - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: ([^:]+)(?::\\d+)?;(\\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name """ } metadata: { name: "prometheus" labels: { component: "mon" } } } } // --- service: {} deployment: {} #Component: "proxy" daemonSet: {} statefulSet: {} configMap: {} // --- service: { authproxy: { apiVersion: "v1" kind: "Service" metadata: { name: "authproxy" labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { ports: [{ port: 4180 protocol: "TCP" targetPort: 4180 name: "client" }] selector: { app: "authproxy" domain: "prod" component: "proxy" } } } } deployment: { authproxy: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "authproxy" domain: "prod" component: "proxy" } } spec: { containers: [{ image: "skippy/oauth2_proxy:2.0.1" ports: [{ containerPort: 4180 }] args: ["--config=/etc/authproxy/authproxy.cfg"] name: "authproxy" volumeMounts: [{ name: "config-volume" mountPath: "/etc/authproxy" }] }] volumes: [{ name: "config-volume" configMap: { name: "authproxy" } }] } } } metadata: { name: "authproxy" labels: { component: "proxy" } } } } #Component: "proxy" daemonSet: {} statefulSet: {} configMap: { authproxy: { apiVersion: "v1" kind: "ConfigMap" data: { "authproxy.cfg": """ # Google Auth Proxy Config File ## https://github.com/bitly/google_auth_proxy ## : to listen on for HTTP clients http_address = "0.0.0.0:4180" ## the OAuth Redirect URL. redirect_url = "https://auth.example.com/oauth2/callback" ## the http url(s) of the upstream endpoint. If multiple, routing is based on path upstreams = [ # frontend "http://frontend-waiter:7080/dpr/", "http://frontend-maitred:7080/ui/", "http://frontend-maitred:7080/ui", "http://frontend-maitred:7080/report/", "http://frontend-maitred:7080/report", "http://frontend-maitred:7080/static/", # kitchen "http://kitchen-chef:8080/visit", # infrastructure "http://download:7080/file/", "http://download:7080/archive", "http://tasks:7080/tasks", "http://tasks:7080/tasks/", ] ## pass HTTP Basic Auth, X-Forwarded-User and X-Forwarded-Email information to upstream pass_basic_auth = true request_logging = true ## Google Apps Domains to allow authentication for google_apps_domains = [ "example.com", ] email_domains = [ "example.com", ] ## The Google OAuth Client ID, Secret client_id = "---" client_secret = "---" ## Cookie Settings ## Secret - the seed string for secure cookies ## Domain - optional cookie domain to force cookies to (ie: .yourcompany.com) ## Expire - expire timeframe for cookie cookie_secret = "won't tell you" cookie_domain = ".example.com" cookie_https_only = true """ } metadata: { name: "authproxy" labels: { component: "proxy" } } } } // --- service: { goget: { apiVersion: "v1" kind: "Service" metadata: { name: "goget" labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.5.7" ports: [{ port: 443 protocol: "TCP" name: "https" targetPort: 7443 }] selector: { app: "goget" domain: "prod" component: "proxy" } } } } deployment: { goget: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "goget" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "goget-secrets" } }] containers: [{ image: "gcr.io/myproj/goget:v0.5.1" ports: [{ containerPort: 7443 }] name: "goget" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }] }] } } } metadata: { name: "goget" labels: { component: "proxy" } } } } #Component: "proxy" daemonSet: {} statefulSet: {} configMap: {} // --- service: { nginx: { apiVersion: "v1" kind: "Service" metadata: { name: "nginx" labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { type: "LoadBalancer" loadBalancerIP: "1.3.4.5" ports: [{ port: 80 protocol: "TCP" name: "http" targetPort: 80 }, { port: 443 protocol: "TCP" name: "https" targetPort: 443 }] selector: { app: "nginx" domain: "prod" component: "proxy" } } } } deployment: { nginx: { apiVersion: "apps/v1" kind: "Deployment" spec: { replicas: 1 selector: {} template: { metadata: { labels: { app: "nginx" domain: "prod" component: "proxy" } } spec: { volumes: [{ name: "secret-volume" secret: { secretName: "proxy-secrets" } }, { name: "config-volume" configMap: { name: "nginx" } }] containers: [{ image: "nginx:1.11.10-alpine" ports: [{ containerPort: 80 }, { containerPort: 443 }] name: "nginx" volumeMounts: [{ mountPath: "/etc/ssl" name: "secret-volume" }, { name: "config-volume" mountPath: "/etc/nginx/nginx.conf" subPath: "nginx.conf" }] }] } } } metadata: { name: "nginx" labels: { component: "proxy" } } } } #Component: "proxy" daemonSet: {} statefulSet: {} configMap: { nginx: { apiVersion: "v1" kind: "ConfigMap" data: { "nginx.conf": """ events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; # needs to be high for some download jobs. keepalive_timeout 400; # proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; error_log /dev/stdout; # Disable POST body size constraints. We often deal with large # files. Especially docker containers may be large. client_max_body_size 0; upstream goget { server localhost:7070; } # Redirect incoming Google Cloud Storage notifications: server { listen 443 ssl; server_name notify.example.com notify2.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://tasks:7080; proxy_connect_timeout 1; } } server { listen 80; listen 443 ssl; server_name x.example.com example.io; location ~ "(/[^/]+)(/.*)?" { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost$1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } location / { set $myhost $host; if ($arg_go-get = "1") { set $myhost "goget"; } proxy_pass http://$myhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } server { listen 80; server_name www.example.com w.example.com; resolver 8.8.8.8; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$host.default.example.appspot.com/$request_uri; proxy_redirect http://$host.default.example.appspot.com/ /; } } server { # We could add the following line and the connection would still be SSL, # but it doesn't appear to be necessary. Seems saver this way. listen 80; listen 443 default ssl; server_name ~^(?.*)\\.example\\.com$; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; # Security enhancements to deal with poodles and the like. # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html # ssl_ciphers 'AES256+EECDH:AES256+EDH'; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # We don't like poodles. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; # Enable Forward secrecy. ssl_dhparam /etc/ssl/dhparam.pem; ssl_prefer_server_ciphers on; # Enable HTST. add_header Strict-Transport-Security max-age=1209600; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; location / { proxy_pass http://authproxy:4180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 1; } } } """ } metadata: { name: "nginx" labels: { component: "proxy" } } } } tut_test.go:120: $ diff snapshot snapshot2 tut_test.go:120: $ cp snapshot2 snapshot tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 tut_test.go:120: $ cat tut_test.go:120: $ cat tut_test.go:120: $ cue cmd ls ./frontend/maitred tut_test.go:353: Executing command: cue cmd ls ./frontend/maitred tut_test.go:357: Args: ["cmd" "ls" "./frontend/maitred"] Service frontend maitred Deployment frontend maitred tut_test.go:120: $ cue ls ./frontend/maitred tut_test.go:353: Executing command: cue ls ./frontend/maitred tut_test.go:357: Args: ["ls" "./frontend/maitred"] Service frontend maitred Deployment frontend maitred tut_test.go:120: $ cue ls ./... tut_test.go:353: Executing command: cue ls ./... tut_test.go:357: Args: ["ls" "./..."] Service frontend bartender Service frontend breaddispatcher Service frontend host Service frontend maitred Service frontend valeter Service frontend waiter Service frontend waterdispatcher Service infra download Service infra etcd Service infra events Service infra tasks Service infra updater Service infra watcher Service kitchen caller Service kitchen dishwasher Service kitchen expiditer Service kitchen headchef Service kitchen linecook Service kitchen pastrychef Service kitchen souschef Service mon alertmanager Service mon grafana Service mon node-exporter Service mon prometheus Service proxy authproxy Service proxy goget Service proxy nginx Deployment frontend bartender Deployment frontend breaddispatcher Deployment frontend host Deployment frontend maitred Deployment frontend valeter Deployment frontend waiter Deployment frontend waterdispatcher Deployment infra download Deployment infra events Deployment infra tasks Deployment infra updater Deployment infra watcher Deployment kitchen caller Deployment kitchen dishwasher Deployment kitchen expiditer Deployment kitchen headchef Deployment kitchen linecook Deployment kitchen pastrychef Deployment kitchen souschef Deployment mon alertmanager Deployment mon grafana Deployment mon prometheus Deployment proxy authproxy Deployment proxy goget Deployment proxy nginx StatefulSet infra etcd DaemonSet mon node-exporter ConfigMap mon alertmanager ConfigMap mon prometheus ConfigMap proxy authproxy ConfigMap proxy nginx tut_test.go:120: $ cat tut_test.go:120: $ cat tut_test.go:120: $ cue create ./frontend/... tut_test.go:120: $ go get k8s.io/api/apps/v1 tut_test.go:120: $ cue get go k8s.io/api/apps/v1 tut_test.go:120: $ cat tut_test.go:120: $ find . | grep kube.cue | xargs wc | tail -1 --- PASS: TestTutorial (154.56s) === RUN TestEval === RUN TestEval/quick tut_test.go:353: Executing command: cue eval ./... tut_test.go:357: Args: ["eval" "./..."] // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- === RUN TestEval/manual tut_test.go:353: Executing command: cue eval ./... tut_test.go:357: Args: ["eval" "./..."] // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- // --- --- PASS: TestEval (23.30s) --- PASS: TestEval/quick (11.54s) --- PASS: TestEval/manual (11.75s) PASS ok cuelang.org/go/doc/tutorial/kubernetes 178.236s ? cuelang.org/go/encoding [no test files] === RUN TestPackages gen_test.go:28: fix error messages --- SKIP: TestPackages (0.00s) === RUN TestGenerate === RUN TestGenerate/pkg1 === RUN TestGenerate/pkg2 --- PASS: TestGenerate (49.52s) --- PASS: TestGenerate/pkg1 (34.24s) --- PASS: TestGenerate/pkg2 (15.28s) PASS ok cuelang.org/go/encoding/gocode 50.009s === RUN TestValidate === RUN TestValidate/*Sum:_nil_disallowed_by_constraint === RUN TestValidate/Sum === RUN TestValidate/*Sum === RUN TestValidate/*Sum:_incorrect_sum === RUN TestValidate/*Sum:_field_C_is_too_low === RUN TestValidate/*Sum:_nil_value === RUN TestValidate/string_list === RUN TestValidate/string_list_incompatible_lengths --- PASS: TestValidate (0.13s) --- PASS: TestValidate/*Sum:_nil_disallowed_by_constraint (0.08s) --- PASS: TestValidate/Sum (0.01s) --- PASS: TestValidate/*Sum (0.00s) --- PASS: TestValidate/*Sum:_incorrect_sum (0.00s) --- PASS: TestValidate/*Sum:_field_C_is_too_low (0.00s) --- PASS: TestValidate/*Sum:_nil_value (0.00s) --- PASS: TestValidate/string_list (0.01s) --- PASS: TestValidate/string_list_incompatible_lengths (0.01s) === RUN TestComplete === RUN TestComplete/*Sum === RUN TestComplete/*Sum#01 === RUN TestComplete/*sump === RUN TestComplete/*Sum:_backwards === RUN TestComplete/*Sum:_sum_too_low === RUN TestComplete/*Sum:_sum_underspecified === RUN TestComplete/Sum:_cannot_modify === RUN TestComplete/*Sum:_cannot_update_nil_value === RUN TestComplete/cannot_modify_slice === RUN TestComplete/composite_values_update === RUN TestComplete/composite_values_update_with_unsatisfied_map_constraints === RUN TestComplete/composite_values_update_with_map_constraints --- PASS: TestComplete (0.07s) --- PASS: TestComplete/*Sum (0.01s) --- PASS: TestComplete/*Sum#01 (0.00s) --- PASS: TestComplete/*sump (0.00s) --- PASS: TestComplete/*Sum:_backwards (0.00s) --- PASS: TestComplete/*Sum:_sum_too_low (0.00s) --- PASS: TestComplete/*Sum:_sum_underspecified (0.00s) --- PASS: TestComplete/Sum:_cannot_modify (0.00s) --- PASS: TestComplete/*Sum:_cannot_update_nil_value (0.00s) --- PASS: TestComplete/cannot_modify_slice (0.00s) --- PASS: TestComplete/composite_values_update (0.01s) --- PASS: TestComplete/composite_values_update_with_unsatisfied_map_constraints (0.01s) --- PASS: TestComplete/composite_values_update_with_map_constraints (0.01s) === RUN TestEncode === RUN TestEncode/#00 --- PASS: TestEncode (0.00s) --- PASS: TestEncode/#00 (0.00s) === RUN TestDecode === RUN TestDecode/#00 === RUN TestDecode/#01 === RUN TestDecode/#02 --- PASS: TestDecode (0.01s) --- PASS: TestDecode/#00 (0.00s) --- PASS: TestDecode/#01 (0.00s) --- PASS: TestDecode/#02 (0.00s) === RUN TestX codec_test.go:321: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/encoding/gocode/gocodec 0.492s === RUN TestExtract === RUN TestExtract/no_expand_as_JSON_is_not_compact === RUN TestExtract/break_across_new_lines === RUN TestExtract/multiline_string === RUN TestExtract/multiline_string_indented === RUN TestExtract/don't_create_multiline_string_for_label === RUN TestExtract/don't_cap_indentation === RUN TestExtract/keep_list_formatting === RUN TestExtract/large_list === RUN TestExtract/reflow_large_values_unconditionally === RUN TestExtract/invalid_JSON === RUN TestExtract/numeric_keys:_Issue_#219 === RUN TestExtract/legacy:_hidden_fields --- PASS: TestExtract (0.04s) --- PASS: TestExtract/no_expand_as_JSON_is_not_compact (0.02s) --- PASS: TestExtract/break_across_new_lines (0.00s) --- PASS: TestExtract/multiline_string (0.00s) --- PASS: TestExtract/multiline_string_indented (0.00s) --- PASS: TestExtract/don't_create_multiline_string_for_label (0.00s) --- PASS: TestExtract/don't_cap_indentation (0.00s) --- PASS: TestExtract/keep_list_formatting (0.00s) --- PASS: TestExtract/large_list (0.00s) --- PASS: TestExtract/reflow_large_values_unconditionally (0.00s) --- PASS: TestExtract/invalid_JSON (0.00s) --- PASS: TestExtract/numeric_keys:_Issue_#219 (0.00s) --- PASS: TestExtract/legacy:_hidden_fields (0.00s) PASS ok cuelang.org/go/encoding/json 0.274s === RUN TestDecode === RUN TestDecode/testdata/basic.txtar === RUN TestDecode/testdata/def.txtar === RUN TestDecode/testdata/emptyanyof.txtar === RUN TestDecode/testdata/emptyobj.txtar === RUN TestDecode/testdata/err.txtar === RUN TestDecode/testdata/github.txtar === RUN TestDecode/testdata/list.txtar === RUN TestDecode/testdata/num.txtar === RUN TestDecode/testdata/object.txtar === RUN TestDecode/testdata/openapi.txtar === RUN TestDecode/testdata/ref.txtar === RUN TestDecode/testdata/refroot.txtar === RUN TestDecode/testdata/refroot2.txtar === RUN TestDecode/testdata/type.txtar === RUN TestDecode/testdata/typedis.txtar === RUN TestDecode/testdata/unsupported.txtar === RUN TestDecode/testdata/used.txtar --- PASS: TestDecode (2.19s) --- PASS: TestDecode/testdata/basic.txtar (0.09s) --- PASS: TestDecode/testdata/def.txtar (0.02s) --- PASS: TestDecode/testdata/emptyanyof.txtar (0.01s) --- PASS: TestDecode/testdata/emptyobj.txtar (0.01s) --- PASS: TestDecode/testdata/err.txtar (0.01s) --- PASS: TestDecode/testdata/github.txtar (1.74s) --- PASS: TestDecode/testdata/list.txtar (0.04s) --- PASS: TestDecode/testdata/num.txtar (0.01s) --- PASS: TestDecode/testdata/object.txtar (0.06s) --- PASS: TestDecode/testdata/openapi.txtar (0.01s) --- PASS: TestDecode/testdata/ref.txtar (0.06s) --- PASS: TestDecode/testdata/refroot.txtar (0.04s) --- PASS: TestDecode/testdata/refroot2.txtar (0.01s) --- PASS: TestDecode/testdata/type.txtar (0.01s) --- PASS: TestDecode/testdata/typedis.txtar (0.01s) --- PASS: TestDecode/testdata/unsupported.txtar (0.01s) --- PASS: TestDecode/testdata/used.txtar (0.02s) === RUN TestX decode_test.go:154: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/encoding/jsonschema 2.548s === RUN TestDecode === RUN TestDecode/testdata/script/basics.txtar --- PASS: TestDecode (0.07s) --- PASS: TestDecode/testdata/script/basics.txtar (0.07s) === RUN TestParseDefinitions === RUN TestParseDefinitions/structural.json === RUN TestParseDefinitions/nested.json === RUN TestParseDefinitions/simple.json === RUN TestParseDefinitions/simple-filter.json === RUN TestParseDefinitions/array.json === RUN TestParseDefinitions/enum.json === RUN TestParseDefinitions/struct.json === RUN TestParseDefinitions/strings.json === RUN TestParseDefinitions/nums.json === RUN TestParseDefinitions/nums-v3.1.0.json === RUN TestParseDefinitions/builtins.json === RUN TestParseDefinitions/oneof.json === RUN TestParseDefinitions/oneof-resolve.json === RUN TestParseDefinitions/openapi.json === RUN TestParseDefinitions/openapi-norefs.json === RUN TestParseDefinitions/embed.json === RUN TestParseDefinitions/embed-norefs.json === RUN TestParseDefinitions/oneof-funcs.json === RUN TestParseDefinitions/refs.json === RUN TestParseDefinitions/issue131.json === RUN TestParseDefinitions/cycle.json === RUN TestParseDefinitions/#00 --- PASS: TestParseDefinitions (1.21s) --- PASS: TestParseDefinitions/structural.json (0.25s) --- PASS: TestParseDefinitions/nested.json (0.02s) --- PASS: TestParseDefinitions/simple.json (0.02s) --- PASS: TestParseDefinitions/simple-filter.json (0.01s) --- PASS: TestParseDefinitions/array.json (0.06s) --- PASS: TestParseDefinitions/enum.json (0.00s) --- PASS: TestParseDefinitions/struct.json (0.01s) --- PASS: TestParseDefinitions/strings.json (0.01s) --- PASS: TestParseDefinitions/nums.json (0.02s) --- PASS: TestParseDefinitions/nums-v3.1.0.json (0.01s) --- PASS: TestParseDefinitions/builtins.json (0.03s) --- PASS: TestParseDefinitions/oneof.json (0.09s) --- PASS: TestParseDefinitions/oneof-resolve.json (0.20s) --- PASS: TestParseDefinitions/openapi.json (0.06s) --- PASS: TestParseDefinitions/openapi-norefs.json (0.09s) --- PASS: TestParseDefinitions/embed.json (0.02s) --- PASS: TestParseDefinitions/embed-norefs.json (0.01s) --- PASS: TestParseDefinitions/oneof-funcs.json (0.09s) --- PASS: TestParseDefinitions/refs.json (0.01s) --- PASS: TestParseDefinitions/issue131.json (0.19s) --- PASS: TestParseDefinitions/cycle.json (0.00s) --- PASS: TestParseDefinitions/#00 (0.00s) === RUN TestX openapi_test.go:222: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/encoding/openapi 1.635s === RUN TestExtractDefinitions === RUN TestExtractDefinitions/networking/v1alpha3/gateway.proto === RUN TestExtractDefinitions/mixer/v1/attributes.proto === RUN TestExtractDefinitions/mixer/v1/config/client/client_config.proto === RUN TestExtractDefinitions/other/trailcomment.proto --- PASS: TestExtractDefinitions (0.47s) --- PASS: TestExtractDefinitions/networking/v1alpha3/gateway.proto (0.22s) --- PASS: TestExtractDefinitions/mixer/v1/attributes.proto (0.10s) --- PASS: TestExtractDefinitions/mixer/v1/config/client/client_config.proto (0.14s) --- PASS: TestExtractDefinitions/other/trailcomment.proto (0.00s) === RUN TestBuild --- PASS: TestBuild (0.29s) === RUN ExampleExtract --- PASS: ExampleExtract (0.01s) PASS ok cuelang.org/go/encoding/protobuf 1.460s === RUN TestParse === RUN TestParse/decoder/base64 === RUN TestParse/decoder/basic === RUN TestParse/decoder/enums === RUN TestParse/decoder/null --- PASS: TestParse (0.19s) --- PASS: TestParse/decoder/base64 (0.06s) --- PASS: TestParse/decoder/basic (0.03s) --- PASS: TestParse/decoder/enums (0.05s) --- PASS: TestParse/decoder/null (0.05s) === RUN TestX decoder_test.go:112: --- SKIP: TestX (0.00s) === RUN TestEncoder === RUN TestEncoder/encoder/enums === RUN TestEncoder/encoder/list === RUN TestEncoder/encoder/simple === RUN TestEncoder/encoder/struct --- PASS: TestEncoder (0.04s) --- PASS: TestEncoder/encoder/enums (0.01s) --- PASS: TestEncoder/encoder/list (0.00s) --- PASS: TestEncoder/encoder/simple (0.00s) --- PASS: TestEncoder/encoder/struct (0.00s) PASS ok cuelang.org/go/encoding/protobuf/jsonpb 0.978s ? cuelang.org/go/encoding/protobuf/pbinternal [no test files] === RUN TestParse === RUN TestParse/decoder/comments === RUN TestParse/decoder/enums === RUN TestParse/decoder/errors === RUN TestParse/decoder/list === RUN TestParse/decoder/map === RUN TestParse/decoder/scalar === RUN TestParse/decoder/simple --- PASS: TestParse (0.21s) --- PASS: TestParse/decoder/comments (0.12s) --- PASS: TestParse/decoder/enums (0.03s) --- PASS: TestParse/decoder/errors (0.00s) --- PASS: TestParse/decoder/list (0.01s) --- PASS: TestParse/decoder/map (0.01s) --- PASS: TestParse/decoder/scalar (0.00s) --- PASS: TestParse/decoder/simple (0.01s) === RUN TestEncode === RUN TestEncode/encoder/enum === RUN TestEncode/encoder/list === RUN TestEncode/encoder/map === RUN TestEncode/encoder/simple --- PASS: TestEncode (0.06s) --- PASS: TestEncode/encoder/enum (0.05s) --- PASS: TestEncode/encoder/list (0.00s) --- PASS: TestEncode/encoder/map (0.00s) --- PASS: TestEncode/encoder/simple (0.01s) PASS ok cuelang.org/go/encoding/protobuf/textproto 1.134s === RUN TestYAML === RUN TestYAML/empty === RUN TestYAML/empty_stream === RUN TestYAML/string_literal === RUN TestYAML/struct === RUN TestYAML/stream === RUN TestYAML/stream_with_null --- PASS: TestYAML (0.12s) --- PASS: TestYAML/empty (0.04s) --- PASS: TestYAML/empty_stream (0.00s) --- PASS: TestYAML/string_literal (0.01s) --- PASS: TestYAML/struct (0.03s) --- PASS: TestYAML/stream (0.01s) --- PASS: TestYAML/stream_with_null (0.00s) PASS ok cuelang.org/go/encoding/yaml 0.797s === RUN TestAttributeBody === RUN TestAttributeBody/#00 === RUN TestAttributeBody/bb === RUN TestAttributeBody/a, === RUN TestAttributeBody/"a", === RUN TestAttributeBody/a,b === RUN TestAttributeBody/foo,"bar",#"baz"# === RUN TestAttributeBody/foo,bar,baz === RUN TestAttributeBody/1,map[int]string === RUN TestAttributeBody/1,map[int]string#01 === RUN TestAttributeBody/bar=str === RUN TestAttributeBody/bar="str" === RUN TestAttributeBody/foo.bar="str" === RUN TestAttributeBody/bar=,baz= === RUN TestAttributeBody/foo=1,bar="str",baz=free_form === RUN TestAttributeBody/foo=1,bar="str",baz=free_form__ === RUN TestAttributeBody/foo=1,bar="str"__,baz="free_form__" === RUN TestAttributeBody/"""___""" === RUN TestAttributeBody/#'''____\#x20____'''# === RUN TestAttributeBody/''_,b === RUN TestAttributeBody/'_,b === RUN TestAttributeBody/"\_" === RUN TestAttributeBody/#_ --- PASS: TestAttributeBody (0.04s) --- PASS: TestAttributeBody/#00 (0.02s) --- PASS: TestAttributeBody/bb (0.00s) --- PASS: TestAttributeBody/a, (0.00s) --- PASS: TestAttributeBody/"a", (0.00s) --- PASS: TestAttributeBody/a,b (0.00s) --- PASS: TestAttributeBody/foo,"bar",#"baz"# (0.00s) --- PASS: TestAttributeBody/foo,bar,baz (0.00s) --- PASS: TestAttributeBody/1,map[int]string (0.00s) --- PASS: TestAttributeBody/1,map[int]string#01 (0.00s) --- PASS: TestAttributeBody/bar=str (0.00s) --- PASS: TestAttributeBody/bar="str" (0.00s) --- PASS: TestAttributeBody/foo.bar="str" (0.00s) --- PASS: TestAttributeBody/bar=,baz= (0.00s) --- PASS: TestAttributeBody/foo=1,bar="str",baz=free_form (0.00s) --- PASS: TestAttributeBody/foo=1,bar="str",baz=free_form__ (0.00s) --- PASS: TestAttributeBody/foo=1,bar="str"__,baz="free_form__" (0.00s) --- PASS: TestAttributeBody/"""___""" (0.00s) --- PASS: TestAttributeBody/#'''____\#x20____'''# (0.00s) --- PASS: TestAttributeBody/''_,b (0.00s) --- PASS: TestAttributeBody/'_,b (0.00s) --- PASS: TestAttributeBody/"\_" (0.00s) --- PASS: TestAttributeBody/#_ (0.00s) PASS ok cuelang.org/go/internal 0.607s ? cuelang.org/go/internal/astinternal [no test files] ? cuelang.org/go/internal/ci [no test files] ? cuelang.org/go/internal/ci/updatetxtar [no test files] ? cuelang.org/go/internal/cli [no test files] ? cuelang.org/go/internal/cmd/embedpkg [no test files] ? cuelang.org/go/internal/cmd/qgo [no test files] ? cuelang.org/go/internal/copy [no test files] === RUN TestNilSource === RUN TestNilSource/*adt.BasicType === RUN TestNilSource/*adt.BinaryExpr === RUN TestNilSource/*adt.Bool === RUN TestNilSource/*adt.Bottom === RUN TestNilSource/*adt.BoundExpr === RUN TestNilSource/*adt.BoundValue === RUN TestNilSource/*adt.Builtin === RUN TestNilSource/*adt.BuiltinValidator === RUN TestNilSource/*adt.BulkOptionalField === RUN TestNilSource/*adt.Bytes === RUN TestNilSource/*adt.CallExpr === RUN TestNilSource/*adt.Conjunction === RUN TestNilSource/*adt.Disjunction === RUN TestNilSource/*adt.DisjunctionExpr === RUN TestNilSource/*adt.DynamicField === RUN TestNilSource/*adt.DynamicReference === RUN TestNilSource/*adt.Ellipsis === RUN TestNilSource/*adt.Field === RUN TestNilSource/*adt.FieldReference === RUN TestNilSource/*adt.ForClause === RUN TestNilSource/*adt.IfClause === RUN TestNilSource/*adt.ImportReference === RUN TestNilSource/*adt.IndexExpr === RUN TestNilSource/*adt.Interpolation === RUN TestNilSource/*adt.LabelReference === RUN TestNilSource/*adt.LetClause === RUN TestNilSource/*adt.LetReference === RUN TestNilSource/*adt.ListLit === RUN TestNilSource/*adt.ListMarker === RUN TestNilSource/*adt.NodeLink === RUN TestNilSource/*adt.Null === RUN TestNilSource/*adt.Num === RUN TestNilSource/*adt.OptionalField === RUN TestNilSource/*adt.SelectorExpr === RUN TestNilSource/*adt.SliceExpr === RUN TestNilSource/*adt.String === RUN TestNilSource/*adt.StructLit === RUN TestNilSource/*adt.StructMarker === RUN TestNilSource/*adt.Top === RUN TestNilSource/*adt.UnaryExpr === RUN TestNilSource/*adt.ValueClause === RUN TestNilSource/*adt.Vertex --- PASS: TestNilSource (0.01s) --- PASS: TestNilSource/*adt.BasicType (0.00s) --- PASS: TestNilSource/*adt.BinaryExpr (0.00s) --- PASS: TestNilSource/*adt.Bool (0.00s) --- PASS: TestNilSource/*adt.Bottom (0.00s) --- PASS: TestNilSource/*adt.BoundExpr (0.00s) --- PASS: TestNilSource/*adt.BoundValue (0.00s) --- PASS: TestNilSource/*adt.Builtin (0.00s) --- PASS: TestNilSource/*adt.BuiltinValidator (0.00s) --- PASS: TestNilSource/*adt.BulkOptionalField (0.00s) --- PASS: TestNilSource/*adt.Bytes (0.00s) --- PASS: TestNilSource/*adt.CallExpr (0.00s) --- PASS: TestNilSource/*adt.Conjunction (0.00s) --- PASS: TestNilSource/*adt.Disjunction (0.00s) --- PASS: TestNilSource/*adt.DisjunctionExpr (0.00s) --- PASS: TestNilSource/*adt.DynamicField (0.00s) --- PASS: TestNilSource/*adt.DynamicReference (0.00s) --- PASS: TestNilSource/*adt.Ellipsis (0.00s) --- PASS: TestNilSource/*adt.Field (0.00s) --- PASS: TestNilSource/*adt.FieldReference (0.00s) --- PASS: TestNilSource/*adt.ForClause (0.00s) --- PASS: TestNilSource/*adt.IfClause (0.00s) --- PASS: TestNilSource/*adt.ImportReference (0.00s) --- PASS: TestNilSource/*adt.IndexExpr (0.00s) --- PASS: TestNilSource/*adt.Interpolation (0.00s) --- PASS: TestNilSource/*adt.LabelReference (0.00s) --- PASS: TestNilSource/*adt.LetClause (0.00s) --- PASS: TestNilSource/*adt.LetReference (0.00s) --- PASS: TestNilSource/*adt.ListLit (0.00s) --- PASS: TestNilSource/*adt.ListMarker (0.00s) --- PASS: TestNilSource/*adt.NodeLink (0.00s) --- PASS: TestNilSource/*adt.Null (0.00s) --- PASS: TestNilSource/*adt.Num (0.00s) --- PASS: TestNilSource/*adt.OptionalField (0.00s) --- PASS: TestNilSource/*adt.SelectorExpr (0.00s) --- PASS: TestNilSource/*adt.SliceExpr (0.00s) --- PASS: TestNilSource/*adt.String (0.00s) --- PASS: TestNilSource/*adt.StructLit (0.00s) --- PASS: TestNilSource/*adt.StructMarker (0.00s) --- PASS: TestNilSource/*adt.Top (0.00s) --- PASS: TestNilSource/*adt.UnaryExpr (0.00s) --- PASS: TestNilSource/*adt.ValueClause (0.00s) --- PASS: TestNilSource/*adt.Vertex (0.00s) === RUN TestKindString === RUN TestKindString/_|_ === RUN TestKindString/(int|[...]) === RUN TestKindString/null === RUN TestKindString/int === RUN TestKindString/float === RUN TestKindString/string === RUN TestKindString/bytes === RUN TestKindString/{...} === RUN TestKindString/[...] === RUN TestKindString/number === RUN TestKindString/(bool|[...]|number) === RUN TestKindString/bad(15) --- PASS: TestKindString (0.00s) --- PASS: TestKindString/_|_ (0.00s) --- PASS: TestKindString/(int|[...]) (0.00s) --- PASS: TestKindString/null (0.00s) --- PASS: TestKindString/int (0.00s) --- PASS: TestKindString/float (0.00s) --- PASS: TestKindString/string (0.00s) --- PASS: TestKindString/bytes (0.00s) --- PASS: TestKindString/{...} (0.00s) --- PASS: TestKindString/[...] (0.00s) --- PASS: TestKindString/number (0.00s) --- PASS: TestKindString/(bool|[...]|number) (0.00s) --- PASS: TestKindString/bad(15) (0.00s) === RUN TestClosedness === RUN TestClosedness/simple_embedding === RUN TestClosedness/simple_embedding/a === RUN TestClosedness/simple_embedding/c === RUN TestClosedness/simple_embedding/d === RUN TestClosedness/simple_embedding/e === RUN TestClosedness/closing_embedding === RUN TestClosedness/closing_embedding/a === RUN TestClosedness/closing_embedding/c === RUN TestClosedness/closing_embedding/d === RUN TestClosedness/closing_embedding/e === RUN TestClosedness/narrow_down_definitions_in_subfields === RUN TestClosedness/narrow_down_definitions_in_subfields/a === RUN TestClosedness/narrow_down_definitions_in_subfields/b === RUN TestClosedness/narrow_down_definitions_in_subfields/d === RUN TestClosedness/narrow_down_definitions_in_subfields/e === RUN TestClosedness/narrow_down_definitions_in_subfields/f === RUN TestClosedness/chained_references === RUN TestClosedness/chained_references/a === RUN TestClosedness/chained_references/c === RUN TestClosedness/chained_references/d === RUN TestClosedness/chained_references/e === RUN TestClosedness/chained_references/f === RUN TestClosedness/conjunction_embedding === RUN TestClosedness/conjunction_embedding/a === RUN TestClosedness/conjunction_embedding/c === RUN TestClosedness/conjunction_embedding/d === RUN TestClosedness/conjunction_embedding/e === RUN TestClosedness/conjunction_embedding/f === RUN TestClosedness/conjunction_embedding/g === RUN TestClosedness/local_closing === RUN TestClosedness/local_closing/d === RUN TestClosedness/local_closing/a === RUN TestClosedness/local_closing/c === RUN TestClosedness/local_closing/e === RUN TestClosedness/local_closing/f === RUN TestClosedness/local_closing_of_def === RUN TestClosedness/local_closing_of_def/a === RUN TestClosedness/local_closing_of_def/d === RUN TestClosedness/local_closing_of_def/c === RUN TestClosedness/local_closing_of_def/e === RUN TestClosedness/local_closing_of_def/f === RUN TestClosedness/branching === RUN TestClosedness/branching/a === RUN TestClosedness/branching/e === RUN TestClosedness/branching/f === RUN TestClosedness/branching/g --- PASS: TestClosedness (0.02s) --- PASS: TestClosedness/simple_embedding (0.00s) --- PASS: TestClosedness/simple_embedding/a (0.00s) --- PASS: TestClosedness/simple_embedding/c (0.00s) --- PASS: TestClosedness/simple_embedding/d (0.00s) --- PASS: TestClosedness/simple_embedding/e (0.00s) --- PASS: TestClosedness/closing_embedding (0.00s) --- PASS: TestClosedness/closing_embedding/a (0.00s) --- PASS: TestClosedness/closing_embedding/c (0.00s) --- PASS: TestClosedness/closing_embedding/d (0.00s) --- PASS: TestClosedness/closing_embedding/e (0.00s) --- PASS: TestClosedness/narrow_down_definitions_in_subfields (0.00s) --- PASS: TestClosedness/narrow_down_definitions_in_subfields/a (0.00s) --- PASS: TestClosedness/narrow_down_definitions_in_subfields/b (0.00s) --- PASS: TestClosedness/narrow_down_definitions_in_subfields/d (0.00s) --- PASS: TestClosedness/narrow_down_definitions_in_subfields/e (0.00s) --- PASS: TestClosedness/narrow_down_definitions_in_subfields/f (0.00s) --- PASS: TestClosedness/chained_references (0.00s) --- PASS: TestClosedness/chained_references/a (0.00s) --- PASS: TestClosedness/chained_references/c (0.00s) --- PASS: TestClosedness/chained_references/d (0.00s) --- PASS: TestClosedness/chained_references/e (0.00s) --- PASS: TestClosedness/chained_references/f (0.00s) --- PASS: TestClosedness/conjunction_embedding (0.00s) --- PASS: TestClosedness/conjunction_embedding/a (0.00s) --- PASS: TestClosedness/conjunction_embedding/c (0.00s) --- PASS: TestClosedness/conjunction_embedding/d (0.00s) --- PASS: TestClosedness/conjunction_embedding/e (0.00s) --- PASS: TestClosedness/conjunction_embedding/f (0.00s) --- PASS: TestClosedness/conjunction_embedding/g (0.00s) --- PASS: TestClosedness/local_closing (0.00s) --- PASS: TestClosedness/local_closing/d (0.00s) --- PASS: TestClosedness/local_closing/a (0.00s) --- PASS: TestClosedness/local_closing/c (0.00s) --- PASS: TestClosedness/local_closing/e (0.00s) --- PASS: TestClosedness/local_closing/f (0.00s) --- PASS: TestClosedness/local_closing_of_def (0.00s) --- PASS: TestClosedness/local_closing_of_def/a (0.00s) --- PASS: TestClosedness/local_closing_of_def/d (0.00s) --- PASS: TestClosedness/local_closing_of_def/c (0.00s) --- PASS: TestClosedness/local_closing_of_def/e (0.00s) --- PASS: TestClosedness/local_closing_of_def/f (0.00s) --- PASS: TestClosedness/branching (0.00s) --- PASS: TestClosedness/branching/a (0.00s) --- PASS: TestClosedness/branching/e (0.00s) --- PASS: TestClosedness/branching/f (0.00s) --- PASS: TestClosedness/branching/g (0.00s) === RUN TestEval === RUN TestEval/basicrewrite/000_errors eval_test.go:70: Leaks: 0 Freed: 12 Reused: 9 Allocs: 3 Retain: 0 Unifications: 12 Disjuncts: 12 === RUN TestEval/basicrewrite/001_regexp eval_test.go:70: Leaks: 0 Freed: 16 Reused: 14 Allocs: 2 Retain: 0 Unifications: 16 Disjuncts: 16 === RUN TestEval/basicrewrite/002_arithmetic eval_test.go:70: Leaks: 0 Freed: 24 Reused: 22 Allocs: 2 Retain: 0 Unifications: 24 Disjuncts: 24 === RUN TestEval/basicrewrite/003_integer-specific_arithmetic eval_test.go:70: Leaks: 0 Freed: 25 Reused: 23 Allocs: 2 Retain: 0 Unifications: 25 Disjuncts: 25 === RUN TestEval/basicrewrite/004_booleans eval_test.go:70: Leaks: 0 Freed: 4 Reused: 2 Allocs: 2 Retain: 0 Unifications: 4 Disjuncts: 4 === RUN TestEval/basicrewrite/005_boolean_arithmetic eval_test.go:70: Leaks: 0 Freed: 7 Reused: 5 Allocs: 2 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/basicrewrite/006_basic_type eval_test.go:70: Leaks: 0 Freed: 7 Reused: 5 Allocs: 2 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/basicrewrite/007_strings_and_bytes eval_test.go:70: Leaks: 0 Freed: 9 Reused: 7 Allocs: 2 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/basicrewrite/008_escaping eval_test.go:70: Leaks: 0 Freed: 3 Reused: 1 Allocs: 2 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/basicrewrite/009_reference eval_test.go:70: Leaks: 0 Freed: 11 Reused: 7 Allocs: 4 Retain: 1 Unifications: 11 Disjuncts: 11 === RUN TestEval/basicrewrite/010_lists eval_test.go:70: Leaks: 0 Freed: 31 Reused: 27 Allocs: 4 Retain: 0 Unifications: 31 Disjuncts: 31 === RUN TestEval/basicrewrite/011_list_arithmetic eval_test.go:70: Leaks: 0 Freed: 54 Reused: 50 Allocs: 4 Retain: 0 Unifications: 54 Disjuncts: 54 === RUN TestEval/basicrewrite/012_selecting eval_test.go:70: Leaks: 14 Freed: 12 Reused: 8 Allocs: 18 Retain: 14 Unifications: 26 Disjuncts: 26 === RUN TestEval/basicrewrite/013_obj_unify eval_test.go:70: Leaks: 0 Freed: 15 Reused: 12 Allocs: 3 Retain: 0 Unifications: 15 Disjuncts: 15 === RUN TestEval/basicrewrite/014_disjunctions eval_test.go:70: Leaks: 0 Freed: 137 Reused: 128 Allocs: 9 Retain: 0 Unifications: 20 Disjuncts: 137 === RUN TestEval/basicrewrite/015_types eval_test.go:70: Leaks: 0 Freed: 10 Reused: 8 Allocs: 2 Retain: 0 Unifications: 10 Disjuncts: 10 === RUN TestEval/basicrewrite/016_comparison eval_test.go:70: Leaks: 0 Freed: 9 Reused: 7 Allocs: 2 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/basicrewrite/017_null eval_test.go:70: Leaks: 0 Freed: 8 Reused: 6 Allocs: 2 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/basicrewrite/018_self-reference_cycles eval_test.go:70: Leaks: 0 Freed: 6 Reused: 2 Allocs: 4 Retain: 5 Unifications: 6 Disjuncts: 6 === RUN TestEval/basicrewrite/019_resolved_self-reference_cycles eval_test.go:70: Leaks: 0 Freed: 18 Reused: 13 Allocs: 5 Retain: 4 Unifications: 18 Disjuncts: 18 === RUN TestEval/basicrewrite/020_resolved_self-reference_cycles__Issue_19 eval_test.go:70: Leaks: 0 Freed: 6 Reused: 2 Allocs: 4 Retain: 3 Unifications: 6 Disjuncts: 6 === RUN TestEval/basicrewrite/aliases/aliases eval_test.go:70: Leaks: 2 Freed: 7 Reused: 3 Allocs: 6 Retain: 3 Unifications: 9 Disjuncts: 9 === RUN TestEval/benchmarks/deduparc eval_test.go:70: Leaks: 0 Freed: 11 Reused: 6 Allocs: 5 Retain: 0 Unifications: 7 Disjuncts: 11 === RUN TestEval/benchmarks/dedupelem eval_test.go:70: Leaks: 0 Freed: 16 Reused: 10 Allocs: 6 Retain: 0 Unifications: 10 Disjuncts: 16 === RUN TestEval/benchmarks/disjunction eval_test.go:70: Leaks: 0 Freed: 82 Reused: 74 Allocs: 8 Retain: 0 Unifications: 4 Disjuncts: 82 === RUN TestEval/benchmarks/mergeddisjunction eval_test.go:70: Leaks: 0 Freed: 283 Reused: 275 Allocs: 8 Retain: 0 Unifications: 99 Disjuncts: 283 === RUN TestEval/builtins/all eval_test.go:70: Leaks: 0 Freed: 19 Reused: 13 Allocs: 6 Retain: 0 Unifications: 19 Disjuncts: 19 === RUN TestEval/builtins/and eval_test.go:70: Leaks: 0 Freed: 12 Reused: 7 Allocs: 5 Retain: 0 Unifications: 12 Disjuncts: 12 === RUN TestEval/builtins/closed eval_test.go:70: Leaks: 18 Freed: 122 Reused: 110 Allocs: 30 Retain: 19 Unifications: 117 Disjuncts: 131 === RUN TestEval/builtins/incomplete eval_test.go:70: Leaks: 0 Freed: 112 Reused: 105 Allocs: 7 Retain: 16 Unifications: 96 Disjuncts: 112 === RUN TestEval/builtins/intdiv eval_test.go:70: Leaks: 0 Freed: 29 Reused: 27 Allocs: 2 Retain: 0 Unifications: 29 Disjuncts: 29 === RUN TestEval/builtins/issue299 eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 0 Unifications: 2 Disjuncts: 2 === RUN TestEval/builtins/issue490 eval_test.go:70: Leaks: 2 Freed: 8 Reused: 5 Allocs: 5 Retain: 2 Unifications: 9 Disjuncts: 9 === RUN TestEval/builtins/list/issue332 eval_test.go:70: Leaks: 0 Freed: 25 Reused: 19 Allocs: 6 Retain: 0 Unifications: 25 Disjuncts: 25 === RUN TestEval/builtins/list/sort eval_test.go:70: Leaks: 0 Freed: 20 Reused: 16 Allocs: 4 Retain: 1 Unifications: 20 Disjuncts: 20 === RUN TestEval/builtins/or txtar.go:202: Parse error: no CUE files in . === RUN TestEval/builtins/validators eval_test.go:70: Leaks: 0 Freed: 40 Reused: 36 Allocs: 4 Retain: 0 Unifications: 40 Disjuncts: 40 === RUN TestEval/choosedefault/000_pick_first eval_test.go:70: Leaks: 0 Freed: 11 Reused: 5 Allocs: 6 Retain: 0 Unifications: 6 Disjuncts: 11 === RUN TestEval/choosedefault/001_simple_disambiguation_conflict eval_test.go:70: Leaks: 0 Freed: 14 Reused: 7 Allocs: 7 Retain: 0 Unifications: 4 Disjuncts: 14 === RUN TestEval/choosedefault/002_associativity_of_defaults eval_test.go:70: Leaks: 0 Freed: 83 Reused: 74 Allocs: 9 Retain: 0 Unifications: 11 Disjuncts: 83 === RUN TestEval/compile/erralias txtar.go:284: compile error === RUN TestEval/compile/fields eval_test.go:70: Leaks: 0 Freed: 5 Reused: 3 Allocs: 2 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/compile/files eval_test.go:70: Leaks: 0 Freed: 4 Reused: 2 Allocs: 2 Retain: 0 Unifications: 4 Disjuncts: 4 === RUN TestEval/compile/json eval_test.go:70: Leaks: 0 Freed: 11 Reused: 8 Allocs: 3 Retain: 0 Unifications: 11 Disjuncts: 11 === RUN TestEval/compile/labels === RUN TestEval/compile/let eval_test.go:70: Leaks: 30 Freed: 28 Reused: 23 Allocs: 35 Retain: 31 Unifications: 58 Disjuncts: 58 === RUN TestEval/compile/scope eval_test.go:70: Leaks: 2 Freed: 46 Reused: 43 Allocs: 5 Retain: 5 Unifications: 48 Disjuncts: 48 === RUN TestEval/comprehensions/015_list_comprehension eval_test.go:70: Leaks: 0 Freed: 19 Reused: 11 Allocs: 8 Retain: 5 Unifications: 19 Disjuncts: 19 === RUN TestEval/comprehensions/045_comprehension_and_skipped_field eval_test.go:70: Leaks: 3 Freed: 7 Reused: 2 Allocs: 8 Retain: 3 Unifications: 8 Disjuncts: 10 === RUN TestEval/comprehensions/errors eval_test.go:70: Leaks: 0 Freed: 21 Reused: 14 Allocs: 7 Retain: 0 Unifications: 11 Disjuncts: 21 === RUN TestEval/comprehensions/fields eval_test.go:70: Leaks: 0 Freed: 14 Reused: 9 Allocs: 5 Retain: 0 Unifications: 14 Disjuncts: 14 === RUN TestEval/comprehensions/for eval_test.go:70: Leaks: 0 Freed: 11 Reused: 5 Allocs: 6 Retain: 5 Unifications: 11 Disjuncts: 11 === RUN TestEval/comprehensions/iferror eval_test.go:70: Leaks: 0 Freed: 37 Reused: 29 Allocs: 8 Retain: 4 Unifications: 27 Disjuncts: 37 === RUN TestEval/comprehensions/incomplete eval_test.go:70: Leaks: 0 Freed: 7 Reused: 5 Allocs: 2 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/comprehensions/issue287 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 1 Allocs: 4 Retain: 4 Unifications: 5 Disjuncts: 6 === RUN TestEval/comprehensions/issue293 eval_test.go:70: Leaks: 2 Freed: 12 Reused: 8 Allocs: 6 Retain: 3 Unifications: 13 Disjuncts: 13 === RUN TestEval/comprehensions/issue436 eval_test.go:70: Leaks: 0 Freed: 25 Reused: 20 Allocs: 5 Retain: 0 Unifications: 13 Disjuncts: 25 === RUN TestEval/comprehensions/issue507 eval_test.go:70: Leaks: 0 Freed: 15 Reused: 10 Allocs: 5 Retain: 0 Unifications: 11 Disjuncts: 15 === RUN TestEval/comprehensions/issue837 eval_test.go:70: Leaks: 0 Freed: 120 Reused: 98 Allocs: 22 Retain: 9 Unifications: 84 Disjuncts: 120 === RUN TestEval/comprehensions/issue843 eval_test.go:70: Leaks: 0 Freed: 61 Reused: 44 Allocs: 17 Retain: 4 Unifications: 47 Disjuncts: 59 === RUN TestEval/comprehensions/lists eval_test.go:70: Leaks: 0 Freed: 7 Reused: 3 Allocs: 4 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/comprehensions/multi eval_test.go:70: Leaks: 0 Freed: 24 Reused: 20 Allocs: 4 Retain: 0 Unifications: 24 Disjuncts: 24 === RUN TestEval/comprehensions/nested eval_test.go:70: Leaks: 2 Freed: 44 Reused: 24 Allocs: 22 Retain: 14 Unifications: 36 Disjuncts: 46 === RUN TestEval/comprehensions/nested2 eval_test.go:70: Leaks: 0 Freed: 20 Reused: 16 Allocs: 4 Retain: 1 Unifications: 20 Disjuncts: 20 === RUN TestEval/comprehensions/nestembed eval_test.go:70: Leaks: 0 Freed: 18 Reused: 14 Allocs: 4 Retain: 0 Unifications: 18 Disjuncts: 18 === RUN TestEval/cycle/015_reference_across_tuples_and_back eval_test.go:70: Leaks: 0 Freed: 7 Reused: 1 Allocs: 6 Retain: 3 Unifications: 7 Disjuncts: 7 === RUN TestEval/cycle/021_delayed_constraint_failure eval_test.go:70: Leaks: 0 Freed: 4 Reused: 1 Allocs: 3 Retain: 1 Unifications: 4 Disjuncts: 4 === RUN TestEval/cycle/023_reentrance eval_test.go:70: Leaks: 0 Freed: 82 Reused: 73 Allocs: 9 Retain: 17 Unifications: 82 Disjuncts: 82 === RUN TestEval/cycle/025_cannot_resolve_references_that_would_be_ambiguous eval_test.go:70: Leaks: 0 Freed: 48 Reused: 39 Allocs: 9 Retain: 3 Unifications: 24 Disjuncts: 46 === RUN TestEval/cycle/049_self-reference_cycles_conflicts_with_strings eval_test.go:70: Leaks: 0 Freed: 4 Reused: 0 Allocs: 4 Retain: 1 Unifications: 4 Disjuncts: 4 === RUN TestEval/cycle/050_resolved_self-reference_cycles_with_disjunctions eval_test.go:70: Leaks: 0 Freed: 43 Reused: 32 Allocs: 11 Retain: 0 Unifications: 25 Disjuncts: 43 === RUN TestEval/cycle/051_resolved_self-reference_cycles_with_disjunction eval_test.go:70: Leaks: 0 Freed: 52 Reused: 43 Allocs: 9 Retain: 27 Unifications: 31 Disjuncts: 52 === RUN TestEval/cycle/052_resolved_self-reference_cycles_with_disjunction_with_defaults eval_test.go:70: Leaks: 0 Freed: 44 Reused: 35 Allocs: 9 Retain: 19 Unifications: 27 Disjuncts: 44 === RUN TestEval/cycle/builtins eval_test.go:70: Leaks: 0 Freed: 37 Reused: 30 Allocs: 7 Retain: 28 Unifications: 37 Disjuncts: 37 === RUN TestEval/cycle/compbottom eval_test.go:70: Leaks: 0 Freed: 85 Reused: 73 Allocs: 12 Retain: 101 Unifications: 85 Disjuncts: 89 === RUN TestEval/cycle/compbottom2 eval_test.go:70: Leaks: 0 Freed: 72 Reused: 65 Allocs: 7 Retain: 26 Unifications: 72 Disjuncts: 77 === RUN TestEval/cycle/compbottomnofinal eval_test.go:70: Leaks: 0 Freed: 114 Reused: 100 Allocs: 14 Retain: 164 Unifications: 114 Disjuncts: 117 === RUN TestEval/cycle/comprehension eval_test.go:70: Leaks: 0 Freed: 25 Reused: 15 Allocs: 10 Retain: 7 Unifications: 25 Disjuncts: 25 === RUN TestEval/cycle/cycle_with_bounds eval_test.go:70: Leaks: 0 Freed: 4 Reused: 1 Allocs: 3 Retain: 1 Unifications: 4 Disjuncts: 4 === RUN TestEval/cycle/disjunction eval_test.go:70: Leaks: 0 Freed: 73 Reused: 68 Allocs: 5 Retain: 0 Unifications: 33 Disjuncts: 73 === RUN TestEval/cycle/expression eval_test.go:70: Leaks: 0 Freed: 58 Reused: 49 Allocs: 9 Retain: 42 Unifications: 58 Disjuncts: 58 === RUN TestEval/cycle/issue241 eval_test.go:70: Leaks: 0 Freed: 35 Reused: 29 Allocs: 6 Retain: 3 Unifications: 11 Disjuncts: 33 === RUN TestEval/cycle/issue242 eval_test.go:70: Leaks: 0 Freed: 78 Reused: 69 Allocs: 9 Retain: 3 Unifications: 26 Disjuncts: 78 === RUN TestEval/cycle/issue306 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 1 Allocs: 4 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/cycle/issue429 eval_test.go:70: Leaks: 0 Freed: 96 Reused: 89 Allocs: 7 Retain: 6 Unifications: 40 Disjuncts: 95 === RUN TestEval/cycle/issue494 eval_test.go:70: Leaks: 0 Freed: 43 Reused: 38 Allocs: 5 Retain: 0 Unifications: 43 Disjuncts: 43 === RUN TestEval/cycle/issue502 eval_test.go:70: Leaks: 0 Freed: 93 Reused: 83 Allocs: 10 Retain: 0 Unifications: 93 Disjuncts: 93 === RUN TestEval/cycle/patterns eval_test.go:70: Leaks: 0 Freed: 7 Reused: 2 Allocs: 5 Retain: 2 Unifications: 7 Disjuncts: 7 === RUN TestEval/cycle/structural eval_test.go:70: Leaks: 5 Freed: 579 Reused: 567 Allocs: 17 Retain: 40 Unifications: 442 Disjuncts: 584 === RUN TestEval/cycle/with_defaults eval_test.go:70: Leaks: 0 Freed: 16 Reused: 11 Allocs: 5 Retain: 0 Unifications: 10 Disjuncts: 16 === RUN TestEval/definitions/026_combined_definitions eval_test.go:70: Leaks: 0 Freed: 29 Reused: 24 Allocs: 5 Retain: 1 Unifications: 27 Disjuncts: 27 === RUN TestEval/definitions/028_recursive_closing_starting_at_non-definition eval_test.go:70: Leaks: 0 Freed: 14 Reused: 8 Allocs: 6 Retain: 0 Unifications: 14 Disjuncts: 14 === RUN TestEval/definitions/032_definitions_with_embedding eval_test.go:70: Leaks: 0 Freed: 20 Reused: 16 Allocs: 4 Retain: 0 Unifications: 19 Disjuncts: 19 === RUN TestEval/definitions/033_Issue_#153 eval_test.go:70: Leaks: 0 Freed: 15 Reused: 5 Allocs: 10 Retain: 4 Unifications: 10 Disjuncts: 14 === RUN TestEval/definitions/036_closing_with_failed_optional eval_test.go:70: Leaks: 0 Freed: 20 Reused: 14 Allocs: 6 Retain: 1 Unifications: 15 Disjuncts: 19 === RUN TestEval/definitions/036_optionals_in_open_structs eval_test.go:70: Leaks: 0 Freed: 6 Reused: 3 Allocs: 3 Retain: 0 Unifications: 6 Disjuncts: 6 === RUN TestEval/definitions/037_closing_with_comprehensions eval_test.go:70: Leaks: 10 Freed: 18 Reused: 15 Allocs: 13 Retain: 10 Unifications: 26 Disjuncts: 26 === RUN TestEval/definitions/037_conjunction_of_optional_sets eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/definitions/038_continue_recursive_closing_for_optionals eval_test.go:70: Leaks: 0 Freed: 6 Reused: 2 Allocs: 4 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/definitions/039_augment_closed_optionals eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/definitions/comprehensions eval_test.go:70: Leaks: 0 Freed: 6 Reused: 1 Allocs: 5 Retain: 2 Unifications: 6 Disjuncts: 6 === RUN TestEval/definitions/defembed eval_test.go:70: Leaks: 0 Freed: 6 Reused: 2 Allocs: 4 Retain: 1 Unifications: 5 Disjuncts: 5 === RUN TestEval/definitions/dynamic eval_test.go:70: Leaks: 0 Freed: 4 Reused: 1 Allocs: 3 Retain: 1 Unifications: 4 Disjuncts: 4 === RUN TestEval/definitions/embed eval_test.go:70: Leaks: 0 Freed: 63 Reused: 54 Allocs: 9 Retain: 6 Unifications: 55 Disjuncts: 59 === RUN TestEval/definitions/files eval_test.go:70: Leaks: 0 Freed: 25 Reused: 19 Allocs: 6 Retain: 1 Unifications: 21 Disjuncts: 25 === RUN TestEval/definitions/hidden eval_test.go:70: Leaks: 2 Freed: 26 Reused: 22 Allocs: 6 Retain: 2 Unifications: 27 Disjuncts: 27 === RUN TestEval/definitions/issue271 eval_test.go:70: Leaks: 2 Freed: 6 Reused: 3 Allocs: 5 Retain: 2 Unifications: 7 Disjuncts: 7 === RUN TestEval/definitions/issue317 eval_test.go:70: Leaks: 0 Freed: 52 Reused: 45 Allocs: 7 Retain: 0 Unifications: 46 Disjuncts: 52 === RUN TestEval/definitions/issue320 eval_test.go:70: Leaks: 0 Freed: 7 Reused: 3 Allocs: 4 Retain: 1 Unifications: 6 Disjuncts: 6 === RUN TestEval/definitions/issue342 eval_test.go:70: Leaks: 0 Freed: 24 Reused: 17 Allocs: 7 Retain: 1 Unifications: 17 Disjuncts: 23 === RUN TestEval/definitions/issue359 eval_test.go:70: Leaks: 0 Freed: 81 Reused: 74 Allocs: 7 Retain: 0 Unifications: 41 Disjuncts: 81 === RUN TestEval/definitions/issue367 eval_test.go:70: Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 0 Unifications: 17 Disjuncts: 17 === RUN TestEval/definitions/issue370 eval_test.go:70: Leaks: 0 Freed: 11 Reused: 8 Allocs: 3 Retain: 0 Unifications: 11 Disjuncts: 11 === RUN TestEval/definitions/issue419 eval_test.go:70: Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 0 Unifications: 12 Disjuncts: 16 === RUN TestEval/definitions/issue471 eval_test.go:70: Leaks: 0 Freed: 20 Reused: 13 Allocs: 7 Retain: 2 Unifications: 18 Disjuncts: 20 === RUN TestEval/definitions/issue483 eval_test.go:70: Leaks: 0 Freed: 11 Reused: 3 Allocs: 8 Retain: 3 Unifications: 11 Disjuncts: 11 === RUN TestEval/definitions/issue491 eval_test.go:70: Leaks: 0 Freed: 45 Reused: 36 Allocs: 9 Retain: 1 Unifications: 29 Disjuncts: 45 === RUN TestEval/definitions/issue493 eval_test.go:70: Leaks: 0 Freed: 24 Reused: 19 Allocs: 5 Retain: 0 Unifications: 20 Disjuncts: 24 === RUN TestEval/definitions/issue496 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 4 Allocs: 4 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/definitions/issue497 eval_test.go:70: Leaks: 0 Freed: 10 Reused: 5 Allocs: 5 Retain: 0 Unifications: 10 Disjuncts: 10 === RUN TestEval/definitions/issue533 eval_test.go:70: Leaks: 0 Freed: 11 Reused: 8 Allocs: 3 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/definitions/issue539 eval_test.go:70: Leaks: 0 Freed: 14 Reused: 9 Allocs: 5 Retain: 0 Unifications: 10 Disjuncts: 14 === RUN TestEval/definitions/list eval_test.go:70: Leaks: 0 Freed: 9 Reused: 3 Allocs: 6 Retain: 1 Unifications: 9 Disjuncts: 9 === RUN TestEval/definitions/visibility eval_test.go:70: Leaks: 0 Freed: 8 Reused: 5 Allocs: 3 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/disjunctions/019_ips eval_test.go:70: Leaks: 0 Freed: 61 Reused: 55 Allocs: 6 Retain: 0 Unifications: 52 Disjuncts: 61 === RUN TestEval/disjunctions/defembed eval_test.go:70: Leaks: 0 Freed: 306 Reused: 296 Allocs: 10 Retain: 0 Unifications: 52 Disjuncts: 306 === RUN TestEval/disjunctions/elimination eval_test.go:70: Leaks: 0 Freed: 797 Reused: 778 Allocs: 19 Retain: 0 Unifications: 481 Disjuncts: 771 === RUN TestEval/disjunctions/embed eval_test.go:70: Leaks: 0 Freed: 418 Reused: 383 Allocs: 35 Retain: 0 Unifications: 216 Disjuncts: 376 === RUN TestEval/disjunctions/errors eval_test.go:70: Leaks: 0 Freed: 37 Reused: 29 Allocs: 8 Retain: 0 Unifications: 22 Disjuncts: 34 === RUN TestEval/disjunctions/incomplete eval_test.go:70: Leaks: 0 Freed: 73 Reused: 63 Allocs: 10 Retain: 0 Unifications: 41 Disjuncts: 73 === RUN TestEval/disjunctions/operands eval_test.go:70: Leaks: 0 Freed: 30 Reused: 25 Allocs: 5 Retain: 0 Unifications: 22 Disjuncts: 30 === RUN TestEval/disjunctions/specdeviation eval_test.go:70: Leaks: 0 Freed: 171 Reused: 158 Allocs: 13 Retain: 1 Unifications: 28 Disjuncts: 171 === RUN TestEval/eval/basictypes eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/eval/bounds eval_test.go:70: Leaks: 0 Freed: 53 Reused: 50 Allocs: 3 Retain: 1 Unifications: 53 Disjuncts: 53 === RUN TestEval/eval/bulk eval_test.go:70: Leaks: 0 Freed: 51 Reused: 44 Allocs: 7 Retain: 0 Unifications: 37 Disjuncts: 49 === RUN TestEval/eval/closed_disjunction eval_test.go:70: Leaks: 0 Freed: 32 Reused: 26 Allocs: 6 Retain: 0 Unifications: 11 Disjuncts: 23 === RUN TestEval/eval/closedness eval_test.go:70: Leaks: 0 Freed: 20 Reused: 15 Allocs: 5 Retain: 3 Unifications: 19 Disjuncts: 19 === RUN TestEval/eval/comprehensions eval_test.go:70: Leaks: 6 Freed: 13 Reused: 10 Allocs: 9 Retain: 12 Unifications: 19 Disjuncts: 21 === RUN TestEval/eval/conflicts eval_test.go:70: Leaks: 0 Freed: 15 Reused: 10 Allocs: 5 Retain: 0 Unifications: 15 Disjuncts: 15 === RUN TestEval/eval/cycles_ref eval_test.go:70: Leaks: 0 Freed: 12 Reused: 7 Allocs: 5 Retain: 3 Unifications: 12 Disjuncts: 12 === RUN TestEval/eval/discontinuous eval_test.go:70: Leaks: 0 Freed: 14 Reused: 3 Allocs: 11 Retain: 8 Unifications: 14 Disjuncts: 14 === RUN TestEval/eval/disjunctions eval_test.go:70: Leaks: 0 Freed: 304 Reused: 292 Allocs: 12 Retain: 0 Unifications: 147 Disjuncts: 304 === RUN TestEval/eval/dynamic_field eval_test.go:70: Leaks: 0 Freed: 24 Reused: 18 Allocs: 6 Retain: 5 Unifications: 24 Disjuncts: 24 === RUN TestEval/eval/embed eval_test.go:70: Leaks: 0 Freed: 16 Reused: 12 Allocs: 4 Retain: 1 Unifications: 16 Disjuncts: 16 === RUN TestEval/eval/errunifiy eval_test.go:70: Leaks: 0 Freed: 7 Reused: 4 Allocs: 3 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/eval/expressions eval_test.go:70: Leaks: 0 Freed: 5 Reused: 3 Allocs: 2 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/eval/fields eval_test.go:70: Leaks: 0 Freed: 5 Reused: 0 Allocs: 5 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/eval/github eval_test.go:70: Leaks: 29 Freed: 383170 Reused: 383069 Allocs: 130 Retain: 2756 Unifications: 87641 Disjuncts: 383017 === RUN TestEval/eval/incomplete eval_test.go:70: Leaks: 0 Freed: 18 Reused: 13 Allocs: 5 Retain: 20 Unifications: 18 Disjuncts: 18 === RUN TestEval/eval/incompleteperm === RUN TestEval/eval/issue285 eval_test.go:70: Leaks: 0 Freed: 10 Reused: 6 Allocs: 4 Retain: 0 Unifications: 10 Disjuncts: 10 === RUN TestEval/eval/issue295 eval_test.go:70: Leaks: 1 Freed: 3 Reused: 0 Allocs: 4 Retain: 1 Unifications: 4 Disjuncts: 4 === RUN TestEval/eval/issue349 eval_test.go:70: Leaks: 0 Freed: 10 Reused: 7 Allocs: 3 Retain: 0 Unifications: 10 Disjuncts: 10 === RUN TestEval/eval/issue353 eval_test.go:70: Leaks: 0 Freed: 11 Reused: 5 Allocs: 6 Retain: 0 Unifications: 7 Disjuncts: 11 === RUN TestEval/eval/issue494 eval_test.go:70: Leaks: 0 Freed: 26 Reused: 21 Allocs: 5 Retain: 0 Unifications: 26 Disjuncts: 26 === RUN TestEval/eval/issue500 eval_test.go:70: Leaks: 0 Freed: 60 Reused: 56 Allocs: 4 Retain: 0 Unifications: 60 Disjuncts: 60 === RUN TestEval/eval/issue545 eval_test.go:70: Leaks: 0 Freed: 121 Reused: 107 Allocs: 14 Retain: 0 Unifications: 65 Disjuncts: 121 === RUN TestEval/eval/issue599 eval_test.go:70: Leaks: 0 Freed: 47 Reused: 39 Allocs: 8 Retain: 0 Unifications: 47 Disjuncts: 47 === RUN TestEval/eval/let eval_test.go:70: Leaks: 2 Freed: 4 Reused: 1 Allocs: 5 Retain: 2 Unifications: 6 Disjuncts: 6 === RUN TestEval/eval/lists eval_test.go:70: Leaks: 0 Freed: 15 Reused: 10 Allocs: 5 Retain: 1 Unifications: 15 Disjuncts: 15 === RUN TestEval/eval/merge eval_test.go:70: Leaks: 0 Freed: 22 Reused: 14 Allocs: 8 Retain: 3 Unifications: 22 Disjuncts: 22 === RUN TestEval/eval/resolve_basic eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/eval/resolve_env eval_test.go:70: Leaks: 0 Freed: 15 Reused: 9 Allocs: 6 Retain: 0 Unifications: 15 Disjuncts: 15 === RUN TestEval/eval/selectors eval_test.go:70: Leaks: 0 Freed: 18 Reused: 13 Allocs: 5 Retain: 0 Unifications: 18 Disjuncts: 18 === RUN TestEval/eval/structs eval_test.go:70: Leaks: 2 Freed: 2 Reused: 0 Allocs: 4 Retain: 2 Unifications: 4 Disjuncts: 4 === RUN TestEval/eval/unify eval_test.go:70: Leaks: 0 Freed: 8 Reused: 2 Allocs: 6 Retain: 1 Unifications: 8 Disjuncts: 8 === RUN TestEval/export/000 eval_test.go:70: Leaks: 0 Freed: 1 Reused: 0 Allocs: 1 Retain: 0 Unifications: 1 Disjuncts: 1 === RUN TestEval/export/001 eval_test.go:70: Leaks: 0 Freed: 1 Reused: 0 Allocs: 1 Retain: 0 Unifications: 1 Disjuncts: 1 === RUN TestEval/export/002 eval_test.go:70: Leaks: 0 Freed: 1 Reused: 0 Allocs: 1 Retain: 0 Unifications: 1 Disjuncts: 1 === RUN TestEval/export/003 eval_test.go:70: Leaks: 0 Freed: 1 Reused: 0 Allocs: 1 Retain: 0 Unifications: 1 Disjuncts: 1 === RUN TestEval/export/004 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 3 Allocs: 2 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/export/005 eval_test.go:70: Leaks: 0 Freed: 7 Reused: 5 Allocs: 2 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/export/006 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 5 Allocs: 3 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/export/007 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 5 Allocs: 3 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/export/008 eval_test.go:70: Leaks: 0 Freed: 3 Reused: 0 Allocs: 3 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/export/009 eval_test.go:70: Leaks: 0 Freed: 21 Reused: 17 Allocs: 4 Retain: 0 Unifications: 21 Disjuncts: 21 === RUN TestEval/export/010 eval_test.go:70: Leaks: 0 Freed: 21 Reused: 17 Allocs: 4 Retain: 0 Unifications: 21 Disjuncts: 21 === RUN TestEval/export/011 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 2 Allocs: 3 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/export/012 eval_test.go:70: Leaks: 0 Freed: 7 Reused: 1 Allocs: 6 Retain: 0 Unifications: 3 Disjuncts: 7 === RUN TestEval/export/013 eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 0 Unifications: 2 Disjuncts: 2 === RUN TestEval/export/014 eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 0 Unifications: 2 Disjuncts: 2 === RUN TestEval/export/015 eval_test.go:70: Leaks: 0 Freed: 16 Reused: 9 Allocs: 7 Retain: 0 Unifications: 4 Disjuncts: 16 === RUN TestEval/export/016 eval_test.go:70: Leaks: 0 Freed: 14 Reused: 12 Allocs: 2 Retain: 0 Unifications: 14 Disjuncts: 14 === RUN TestEval/export/017 eval_test.go:70: Leaks: 0 Freed: 6 Reused: 3 Allocs: 3 Retain: 0 Unifications: 6 Disjuncts: 6 === RUN TestEval/export/018 eval_test.go:70: Leaks: 0 Freed: 7 Reused: 4 Allocs: 3 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/export/019 eval_test.go:70: Leaks: 0 Freed: 3 Reused: 1 Allocs: 2 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/export/020 eval_test.go:70: Leaks: 0 Freed: 3 Reused: 1 Allocs: 2 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/export/021 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 3 Allocs: 5 Retain: 2 Unifications: 8 Disjuncts: 8 === RUN TestEval/export/022 eval_test.go:70: Leaks: 0 Freed: 14 Reused: 8 Allocs: 6 Retain: 0 Unifications: 10 Disjuncts: 14 === RUN TestEval/export/023 eval_test.go:70: Leaks: 0 Freed: 15 Reused: 11 Allocs: 4 Retain: 0 Unifications: 15 Disjuncts: 15 === RUN TestEval/export/024 eval_test.go:70: Leaks: 0 Freed: 23 Reused: 18 Allocs: 5 Retain: 0 Unifications: 23 Disjuncts: 23 === RUN TestEval/export/025 eval_test.go:70: Leaks: 0 Freed: 14 Reused: 9 Allocs: 5 Retain: 1 Unifications: 12 Disjuncts: 14 === RUN TestEval/export/026 eval_test.go:70: Leaks: 0 Freed: 1 Reused: 0 Allocs: 1 Retain: 0 Unifications: 1 Disjuncts: 1 === RUN TestEval/export/027 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 1 Allocs: 4 Retain: 0 Unifications: 3 Disjuncts: 5 === RUN TestEval/export/028 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 1 Allocs: 7 Retain: 0 Unifications: 6 Disjuncts: 8 === RUN TestEval/export/029 eval_test.go:70: Leaks: 0 Freed: 12 Reused: 3 Allocs: 9 Retain: 0 Unifications: 10 Disjuncts: 12 === RUN TestEval/export/030 eval_test.go:70: Leaks: 0 Freed: 82 Reused: 69 Allocs: 13 Retain: 1 Unifications: 28 Disjuncts: 82 === RUN TestEval/export/031 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 3 Allocs: 5 Retain: 0 Unifications: 6 Disjuncts: 8 === RUN TestEval/export/032 eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 0 Unifications: 2 Disjuncts: 2 === RUN TestEval/export/issue854 eval_test.go:70: Leaks: 4 Freed: 2 Reused: 0 Allocs: 6 Retain: 9 Unifications: 6 Disjuncts: 4 === RUN TestEval/fulleval/000_detect_conflicting_value eval_test.go:70: Leaks: 0 Freed: 4 Reused: 1 Allocs: 3 Retain: 0 Unifications: 2 Disjuncts: 4 === RUN TestEval/fulleval/001_conflicts_in_optional_fields_are_okay_ eval_test.go:70: Leaks: 0 Freed: 11 Reused: 6 Allocs: 5 Retain: 0 Unifications: 7 Disjuncts: 11 === RUN TestEval/fulleval/002_resolve_all_disjunctions eval_test.go:70: Leaks: 0 Freed: 23 Reused: 17 Allocs: 6 Retain: 0 Unifications: 11 Disjuncts: 23 === RUN TestEval/fulleval/003_field_templates eval_test.go:70: Leaks: 0 Freed: 21 Reused: 15 Allocs: 6 Retain: 0 Unifications: 17 Disjuncts: 21 === RUN TestEval/fulleval/004_field_comprehension eval_test.go:70: Leaks: 0 Freed: 12 Reused: 4 Allocs: 8 Retain: 5 Unifications: 12 Disjuncts: 12 === RUN TestEval/fulleval/005_conditional_field eval_test.go:70: Leaks: 0 Freed: 7 Reused: 4 Allocs: 3 Retain: 3 Unifications: 7 Disjuncts: 8 === RUN TestEval/fulleval/006_referencing_field_in_field_comprehension eval_test.go:70: Leaks: 0 Freed: 7 Reused: 2 Allocs: 5 Retain: 3 Unifications: 7 Disjuncts: 7 === RUN TestEval/fulleval/007_different_labels_for_templates eval_test.go:70: Leaks: 0 Freed: 4 Reused: 0 Allocs: 4 Retain: 0 Unifications: 4 Disjuncts: 4 === RUN TestEval/fulleval/008_nested_templates_in_one_field eval_test.go:70: Leaks: 0 Freed: 18 Reused: 12 Allocs: 6 Retain: 0 Unifications: 18 Disjuncts: 18 === RUN TestEval/fulleval/009_template_unification_within_one_struct eval_test.go:70: Leaks: 0 Freed: 12 Reused: 8 Allocs: 4 Retain: 0 Unifications: 12 Disjuncts: 12 === RUN TestEval/fulleval/010_field_comprehensions_with_multiple_keys eval_test.go:70: Leaks: 0 Freed: 49 Reused: 43 Allocs: 6 Retain: 0 Unifications: 49 Disjuncts: 49 === RUN TestEval/fulleval/011_field_comprehensions_with_templates eval_test.go:70: Leaks: 0 Freed: 8 Reused: 3 Allocs: 5 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/fulleval/012_disjunctions_of_lists eval_test.go:70: Leaks: 0 Freed: 18 Reused: 13 Allocs: 5 Retain: 0 Unifications: 14 Disjuncts: 18 === RUN TestEval/fulleval/013_normalization eval_test.go:70: Leaks: 0 Freed: 10 Reused: 6 Allocs: 4 Retain: 0 Unifications: 4 Disjuncts: 10 === RUN TestEval/fulleval/014_default_disambiguation_and_elimination eval_test.go:70: Leaks: 0 Freed: 24 Reused: 17 Allocs: 7 Retain: 0 Unifications: 6 Disjuncts: 24 === RUN TestEval/fulleval/016_struct_comprehension_with_template eval_test.go:70: Leaks: 0 Freed: 51 Reused: 41 Allocs: 10 Retain: 4 Unifications: 27 Disjuncts: 51 === RUN TestEval/fulleval/017_resolutions_in_struct_comprehension_keys eval_test.go:70: Leaks: 0 Freed: 5 Reused: 1 Allocs: 4 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/fulleval/018_recursive_evaluation_within_list eval_test.go:70: Leaks: 0 Freed: 21 Reused: 14 Allocs: 7 Retain: 10 Unifications: 21 Disjuncts: 21 === RUN TestEval/fulleval/020_complex_interaction_of_groundness eval_test.go:70: Leaks: 0 Freed: 10 Reused: 3 Allocs: 7 Retain: 3 Unifications: 10 Disjuncts: 10 === RUN TestEval/fulleval/021_complex_groundness_2 eval_test.go:70: Leaks: 0 Freed: 16 Reused: 8 Allocs: 8 Retain: 4 Unifications: 16 Disjuncts: 16 === RUN TestEval/fulleval/022_references_from_template_to_concrete eval_test.go:70: Leaks: 0 Freed: 14 Reused: 7 Allocs: 7 Retain: 3 Unifications: 14 Disjuncts: 14 === RUN TestEval/fulleval/024_Issue_#23 eval_test.go:70: Leaks: 0 Freed: 11 Reused: 6 Allocs: 5 Retain: 0 Unifications: 7 Disjuncts: 11 === RUN TestEval/fulleval/026_dont_convert_incomplete_errors_to_non-incomplete eval_test.go:70: Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 7 Unifications: 17 Disjuncts: 17 === RUN TestEval/fulleval/027_len_of_incomplete_types eval_test.go:70: Leaks: 2 Freed: 77 Reused: 71 Allocs: 8 Retain: 2 Unifications: 51 Disjuncts: 79 === RUN TestEval/fulleval/028_slice_rewrite_bug eval_test.go:70: Leaks: 0 Freed: 9 Reused: 5 Allocs: 4 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/fulleval/029_Issue_#94 eval_test.go:70: Leaks: 0 Freed: 21 Reused: 18 Allocs: 3 Retain: 0 Unifications: 21 Disjuncts: 21 === RUN TestEval/fulleval/030_retain_references_with_interleaved_embedding eval_test.go:70: Leaks: 0 Freed: 8 Reused: 2 Allocs: 6 Retain: 1 Unifications: 8 Disjuncts: 8 === RUN TestEval/fulleval/031_comparison_against_bottom eval_test.go:70: Leaks: 0 Freed: 31 Reused: 26 Allocs: 5 Retain: 1 Unifications: 31 Disjuncts: 31 === RUN TestEval/fulleval/032_or_builtin_should_not_fail_on_non-concrete_empty_list eval_test.go:70: Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 0 Unifications: 15 Disjuncts: 17 === RUN TestEval/fulleval/034_label_and_field_aliases eval_test.go:70: Leaks: 0 Freed: 8 Reused: 4 Allocs: 4 Retain: 3 Unifications: 8 Disjuncts: 8 === RUN TestEval/fulleval/035_optionals_with_label_filters eval_test.go:70: Leaks: 0 Freed: 23 Reused: 19 Allocs: 4 Retain: 0 Unifications: 21 Disjuncts: 21 === RUN TestEval/fulleval/040 eval_test.go:70: Leaks: 0 Freed: 27 Reused: 21 Allocs: 6 Retain: 0 Unifications: 15 Disjuncts: 27 === RUN TestEval/fulleval/041 eval_test.go:70: Leaks: 0 Freed: 10 Reused: 5 Allocs: 5 Retain: 0 Unifications: 6 Disjuncts: 10 === RUN TestEval/fulleval/042_cross-dependent_comprehension eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 3 Unifications: 9 Disjuncts: 9 === RUN TestEval/fulleval/043_optional_expanded_before_lookup eval_test.go:70: Leaks: 0 Freed: 10 Reused: 6 Allocs: 4 Retain: 0 Unifications: 10 Disjuncts: 10 === RUN TestEval/fulleval/044_Issue_#178 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 2 Allocs: 3 Retain: 1 Unifications: 5 Disjuncts: 5 === RUN TestEval/fulleval/046_non-structural_direct_cycles eval_test.go:70: Leaks: 0 Freed: 7 Reused: 3 Allocs: 4 Retain: 2 Unifications: 7 Disjuncts: 7 === RUN TestEval/fulleval/047_dont_bind_to_string_labels eval_test.go:70: Leaks: 0 Freed: 5 Reused: 2 Allocs: 3 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/fulleval/048_dont_pass_incomplete_values_to_builtins eval_test.go:70: Leaks: 0 Freed: 3 Reused: 1 Allocs: 2 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/fulleval/049_alias_reuse_in_nested_scope eval_test.go:70: Leaks: 0 Freed: 15 Reused: 11 Allocs: 4 Retain: 0 Unifications: 15 Disjuncts: 15 === RUN TestEval/fulleval/050_json_Marshaling_detects_incomplete eval_test.go:70: Leaks: 0 Freed: 14 Reused: 10 Allocs: 4 Retain: 4 Unifications: 14 Disjuncts: 14 === RUN TestEval/fulleval/051_detectIncompleteYAML eval_test.go:70: Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 0 Unifications: 17 Disjuncts: 17 === RUN TestEval/fulleval/052_detectIncompleteJSON eval_test.go:70: Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 0 Unifications: 17 Disjuncts: 17 === RUN TestEval/fulleval/053_issue312 eval_test.go:70: Leaks: 1 Freed: 5 Reused: 2 Allocs: 4 Retain: 1 Unifications: 4 Disjuncts: 6 === RUN TestEval/fulleval/054_issue312 eval_test.go:70: Leaks: 0 Freed: 10 Reused: 5 Allocs: 5 Retain: 0 Unifications: 6 Disjuncts: 10 === RUN TestEval/fulleval/055_issue318 eval_test.go:70: Leaks: 0 Freed: 8 Reused: 4 Allocs: 4 Retain: 0 Unifications: 8 Disjuncts: 8 === RUN TestEval/fulleval/056_issue314 eval_test.go:70: Leaks: 0 Freed: 39 Reused: 33 Allocs: 6 Retain: 14 Unifications: 39 Disjuncts: 39 === RUN TestEval/interpolation/041_interpolation eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 2 Unifications: 9 Disjuncts: 9 === RUN TestEval/interpolation/042_multiline_interpolation eval_test.go:70: Leaks: 0 Freed: 9 Reused: 7 Allocs: 2 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/interpolation/incomplete eval_test.go:70: Leaks: 0 Freed: 7 Reused: 3 Allocs: 4 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/interpolation/issue487 eval_test.go:70: Leaks: 0 Freed: 15 Reused: 11 Allocs: 4 Retain: 0 Unifications: 15 Disjuncts: 15 === RUN TestEval/interpolation/scalars eval_test.go:70: Leaks: 0 Freed: 11 Reused: 9 Allocs: 2 Retain: 0 Unifications: 11 Disjuncts: 11 === RUN TestEval/lists/019_list_types eval_test.go:70: Leaks: 0 Freed: 62 Reused: 58 Allocs: 4 Retain: 0 Unifications: 62 Disjuncts: 62 === RUN TestEval/lists/020_list_arithmetic eval_test.go:70: Leaks: 0 Freed: 424 Reused: 420 Allocs: 4 Retain: 0 Unifications: 424 Disjuncts: 424 === RUN TestEval/lists/020_list_compilefail === RUN TestEval/lists/021_list_equality eval_test.go:70: Leaks: 0 Freed: 234 Reused: 230 Allocs: 4 Retain: 0 Unifications: 234 Disjuncts: 234 === RUN TestEval/packages/embed eval_test.go:70: Leaks: 3 Freed: 7 Reused: 4 Allocs: 6 Retain: 4 Unifications: 10 Disjuncts: 10 === RUN TestEval/packages/issue398 eval_test.go:70: Leaks: 2 Freed: 4 Reused: 2 Allocs: 4 Retain: 2 Unifications: 6 Disjuncts: 6 === RUN TestEval/packages/sub eval_test.go:70: Leaks: 2 Freed: 2 Reused: 0 Allocs: 4 Retain: 3 Unifications: 4 Disjuncts: 4 === RUN TestEval/references/embed_self eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 1 Unifications: 2 Disjuncts: 2 === RUN TestEval/references/errors eval_test.go:70: Leaks: 0 Freed: 17 Reused: 14 Allocs: 3 Retain: 0 Unifications: 17 Disjuncts: 17 === RUN TestEval/references/incomplete eval_test.go:70: Leaks: 0 Freed: 19 Reused: 14 Allocs: 5 Retain: 0 Unifications: 19 Disjuncts: 19 === RUN TestEval/references/index eval_test.go:70: Leaks: 4 Freed: 57 Reused: 50 Allocs: 11 Retain: 4 Unifications: 53 Disjuncts: 61 === RUN TestEval/references/labels eval_test.go:70: Leaks: 0 Freed: 30 Reused: 25 Allocs: 5 Retain: 0 Unifications: 30 Disjuncts: 30 === RUN TestEval/references/labelstop eval_test.go:70: Leaks: 0 Freed: 3 Reused: 0 Allocs: 3 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/references/let eval_test.go:70: Leaks: 2 Freed: 60 Reused: 56 Allocs: 6 Retain: 2 Unifications: 62 Disjuncts: 61 === RUN TestEval/references/optional eval_test.go:70: Leaks: 0 Freed: 3 Reused: 0 Allocs: 3 Retain: 0 Unifications: 3 Disjuncts: 3 === RUN TestEval/references/package eval_test.go:70: Leaks: 2 Freed: 3 Reused: 1 Allocs: 4 Retain: 2 Unifications: 5 Disjuncts: 5 === RUN TestEval/references/value eval_test.go:70: Leaks: 0 Freed: 9 Reused: 5 Allocs: 4 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/resolve/000_convert___to_top eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 0 Unifications: 2 Disjuncts: 2 === RUN TestEval/resolve/001 eval_test.go:70: Leaks: 0 Freed: 9 Reused: 4 Allocs: 5 Retain: 5 Unifications: 9 Disjuncts: 9 === RUN TestEval/resolve/002 txtar.go:280: === RUN TestEval/resolve/003_resolution_of_quoted_identifiers txtar.go:280: === RUN TestEval/resolve/004 eval_test.go:70: Leaks: 0 Freed: 5 Reused: 2 Allocs: 3 Retain: 0 Unifications: 5 Disjuncts: 5 === RUN TestEval/resolve/005_JSON eval_test.go:70: Leaks: 0 Freed: 6 Reused: 3 Allocs: 3 Retain: 0 Unifications: 6 Disjuncts: 6 === RUN TestEval/resolve/006_arithmetic eval_test.go:70: Leaks: 0 Freed: 7 Reused: 5 Allocs: 2 Retain: 0 Unifications: 7 Disjuncts: 7 === RUN TestEval/resolve/007_inequality eval_test.go:70: Leaks: 1 Freed: 8 Reused: 5 Allocs: 4 Retain: 1 Unifications: 9 Disjuncts: 9 === RUN TestEval/resolve/008_attributes eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/resolve/009_optional_field_unification eval_test.go:70: Leaks: 0 Freed: 9 Reused: 6 Allocs: 3 Retain: 0 Unifications: 9 Disjuncts: 9 === RUN TestEval/resolve/010_optional_field_resolves_to_incomplete eval_test.go:70: Leaks: 0 Freed: 4 Reused: 1 Allocs: 3 Retain: 0 Unifications: 4 Disjuncts: 4 === RUN TestEval/resolve/011_bounds eval_test.go:70: Leaks: 0 Freed: 39 Reused: 37 Allocs: 2 Retain: 0 Unifications: 39 Disjuncts: 39 === RUN TestEval/resolve/012_bound_conversions eval_test.go:70: Leaks: 0 Freed: 12 Reused: 10 Allocs: 2 Retain: 0 Unifications: 12 Disjuncts: 12 === RUN TestEval/resolve/013_custom_validators eval_test.go:70: Leaks: 0 Freed: 4 Reused: 2 Allocs: 2 Retain: 0 Unifications: 4 Disjuncts: 4 === RUN TestEval/resolve/014_null_coalescing eval_test.go:70: Leaks: 0 Freed: 8 Reused: 5 Allocs: 3 Retain: 0 Unifications: 4 Disjuncts: 8 === RUN TestEval/resolve/016_index eval_test.go:70: Leaks: 2 Freed: 53 Reused: 46 Allocs: 9 Retain: 4 Unifications: 47 Disjuncts: 55 === RUN TestEval/resolve/017_disjunctions_of_lists eval_test.go:70: Leaks: 0 Freed: 18 Reused: 13 Allocs: 5 Retain: 0 Unifications: 14 Disjuncts: 18 === RUN TestEval/resolve/018_slice eval_test.go:70: Leaks: 0 Freed: 25 Reused: 21 Allocs: 4 Retain: 0 Unifications: 25 Disjuncts: 25 === RUN TestEval/resolve/022_list_unification eval_test.go:70: Leaks: 0 Freed: 11 Reused: 6 Allocs: 5 Retain: 2 Unifications: 11 Disjuncts: 11 === RUN TestEval/resolve/023_correct_error_messages eval_test.go:70: Leaks: 0 Freed: 2 Reused: 0 Allocs: 2 Retain: 0 Unifications: 2 Disjuncts: 2 === RUN TestEval/resolve/024_structs eval_test.go:70: Leaks: 0 Freed: 13 Reused: 8 Allocs: 5 Retain: 2 Unifications: 13 Disjuncts: 13 === RUN TestEval/resolve/025_definitions eval_test.go:70: Leaks: 0 Freed: 28 Reused: 24 Allocs: 4 Retain: 0 Unifications: 26 Disjuncts: 26 === RUN TestEval/resolve/027_new-style_definitions eval_test.go:70: Leaks: 0 Freed: 11 Reused: 8 Allocs: 3 Retain: 0 Unifications: 11 Disjuncts: 11 === RUN TestEval/resolve/029_non-closed_definition_carries_over_closedness_to_enclosed_template eval_test.go:70: Leaks: 0 Freed: 23 Reused: 18 Allocs: 5 Retain: 0 Unifications: 17 Disjuncts: 19 === RUN TestEval/resolve/030_definitions_with_disjunctions eval_test.go:70: Leaks: 0 Freed: 33 Reused: 28 Allocs: 5 Retain: 0 Unifications: 21 Disjuncts: 29 === RUN TestEval/resolve/031_definitions_with_disjunctions_recurisive eval_test.go:70: Leaks: 0 Freed: 11 Reused: 5 Allocs: 6 Retain: 0 Unifications: 9 Disjuncts: 11 === RUN TestEval/resolve/033_top-level_definition_with_struct_and_disjunction eval_test.go:70: Leaks: 0 Freed: 10 Reused: 5 Allocs: 5 Retain: 0 Unifications: 8 Disjuncts: 10 === RUN TestEval/resolve/034_closing_structs eval_test.go:70: Leaks: 15 Freed: 35 Reused: 32 Allocs: 18 Retain: 15 Unifications: 50 Disjuncts: 50 === RUN TestEval/resolve/035_excluded_embedding_from_closing eval_test.go:70: Leaks: 2 Freed: 17 Reused: 13 Allocs: 6 Retain: 2 Unifications: 17 Disjuncts: 17 === RUN TestEval/resolve/038_incomplete_comprehensions eval_test.go:70: Leaks: 0 Freed: 11 Reused: 6 Allocs: 5 Retain: 4 Unifications: 11 Disjuncts: 11 === RUN TestEval/resolve/039_reference_to_root eval_test.go:70: Leaks: 0 Freed: 21 Reused: 18 Allocs: 3 Retain: 0 Unifications: 21 Disjuncts: 21 === RUN TestEval/resolve/040_references_from_template_to_concrete eval_test.go:70: Leaks: 0 Freed: 14 Reused: 7 Allocs: 7 Retain: 3 Unifications: 14 Disjuncts: 14 === RUN TestEval/resolve/043_diamond-shaped_constraints eval_test.go:70: Leaks: 0 Freed: 16 Reused: 12 Allocs: 4 Retain: 0 Unifications: 16 Disjuncts: 16 === RUN TestEval/resolve/044_field_templates eval_test.go:70: Leaks: 0 Freed: 21 Reused: 15 Allocs: 6 Retain: 0 Unifications: 17 Disjuncts: 21 === RUN TestEval/resolve/045_range_unification eval_test.go:70: Leaks: 0 Freed: 36 Reused: 34 Allocs: 2 Retain: 0 Unifications: 36 Disjuncts: 36 === RUN TestEval/resolve/046_predefined_ranges eval_test.go:70: Leaks: 0 Freed: 4 Reused: 2 Allocs: 2 Retain: 0 Unifications: 4 Disjuncts: 4 === RUN TestEval/resolve/047_struct_comprehensions eval_test.go:70: Leaks: 2 Freed: 11 Reused: 5 Allocs: 8 Retain: 2 Unifications: 9 Disjuncts: 13 === RUN TestEval/resolve/048_builtins eval_test.go:70: Leaks: 0 Freed: 79 Reused: 71 Allocs: 8 Retain: 12 Unifications: 67 Disjuncts: 79 === RUN TestEval/scalars/embed eval_test.go:70: Leaks: 1 Freed: 82 Reused: 77 Allocs: 6 Retain: 13 Unifications: 78 Disjuncts: 82 === RUN TestEval/scalars/emptystruct eval_test.go:70: Leaks: 0 Freed: 52 Reused: 46 Allocs: 6 Retain: 0 Unifications: 45 Disjuncts: 51 === RUN TestEval/scalars/yield eval_test.go:70: Leaks: 0 Freed: 7 Reused: 4 Allocs: 3 Retain: 3 Unifications: 7 Disjuncts: 7 --- PASS: TestEval (19.47s) --- PASS: TestEval/basicrewrite/000_errors (0.05s) --- PASS: TestEval/basicrewrite/001_regexp (0.01s) --- PASS: TestEval/basicrewrite/002_arithmetic (0.01s) --- PASS: TestEval/basicrewrite/003_integer-specific_arithmetic (0.01s) --- PASS: TestEval/basicrewrite/004_booleans (0.00s) --- PASS: TestEval/basicrewrite/005_boolean_arithmetic (0.00s) --- PASS: TestEval/basicrewrite/006_basic_type (0.00s) --- PASS: TestEval/basicrewrite/007_strings_and_bytes (0.00s) --- PASS: TestEval/basicrewrite/008_escaping (0.00s) --- PASS: TestEval/basicrewrite/009_reference (0.00s) --- PASS: TestEval/basicrewrite/010_lists (0.01s) --- PASS: TestEval/basicrewrite/011_list_arithmetic (0.01s) --- PASS: TestEval/basicrewrite/012_selecting (0.00s) --- PASS: TestEval/basicrewrite/013_obj_unify (0.03s) --- PASS: TestEval/basicrewrite/014_disjunctions (0.02s) --- PASS: TestEval/basicrewrite/015_types (0.00s) --- PASS: TestEval/basicrewrite/016_comparison (0.00s) --- PASS: TestEval/basicrewrite/017_null (0.00s) --- PASS: TestEval/basicrewrite/018_self-reference_cycles (0.00s) --- PASS: TestEval/basicrewrite/019_resolved_self-reference_cycles (0.00s) --- PASS: TestEval/basicrewrite/020_resolved_self-reference_cycles__Issue_19 (0.00s) --- PASS: TestEval/basicrewrite/aliases/aliases (0.00s) --- PASS: TestEval/benchmarks/deduparc (0.00s) --- PASS: TestEval/benchmarks/dedupelem (0.01s) --- PASS: TestEval/benchmarks/disjunction (0.01s) --- PASS: TestEval/benchmarks/mergeddisjunction (0.02s) --- PASS: TestEval/builtins/all (0.01s) --- PASS: TestEval/builtins/and (0.00s) --- PASS: TestEval/builtins/closed (0.03s) --- PASS: TestEval/builtins/incomplete (0.03s) --- PASS: TestEval/builtins/intdiv (0.01s) --- PASS: TestEval/builtins/issue299 (0.01s) --- PASS: TestEval/builtins/issue490 (0.00s) --- PASS: TestEval/builtins/list/issue332 (0.00s) --- PASS: TestEval/builtins/list/sort (0.01s) --- SKIP: TestEval/builtins/or (0.43s) --- PASS: TestEval/builtins/validators (0.01s) --- PASS: TestEval/choosedefault/000_pick_first (0.00s) --- PASS: TestEval/choosedefault/001_simple_disambiguation_conflict (0.00s) --- PASS: TestEval/choosedefault/002_associativity_of_defaults (0.00s) --- SKIP: TestEval/compile/erralias (0.00s) --- PASS: TestEval/compile/fields (0.01s) --- PASS: TestEval/compile/files (0.00s) --- PASS: TestEval/compile/json (0.00s) --- PASS: TestEval/compile/labels (0.01s) --- PASS: TestEval/compile/let (0.01s) --- PASS: TestEval/compile/scope (0.01s) --- PASS: TestEval/comprehensions/015_list_comprehension (0.02s) --- PASS: TestEval/comprehensions/045_comprehension_and_skipped_field (0.00s) --- PASS: TestEval/comprehensions/errors (0.01s) --- PASS: TestEval/comprehensions/fields (0.01s) --- PASS: TestEval/comprehensions/for (0.00s) --- PASS: TestEval/comprehensions/iferror (0.01s) --- PASS: TestEval/comprehensions/incomplete (0.00s) --- PASS: TestEval/comprehensions/issue287 (0.00s) --- PASS: TestEval/comprehensions/issue293 (0.00s) --- PASS: TestEval/comprehensions/issue436 (0.00s) --- PASS: TestEval/comprehensions/issue507 (0.00s) --- PASS: TestEval/comprehensions/issue837 (0.04s) --- PASS: TestEval/comprehensions/issue843 (0.01s) --- PASS: TestEval/comprehensions/lists (0.00s) --- PASS: TestEval/comprehensions/multi (0.01s) --- PASS: TestEval/comprehensions/nested (0.01s) --- PASS: TestEval/comprehensions/nested2 (0.00s) --- PASS: TestEval/comprehensions/nestembed (0.00s) --- PASS: TestEval/cycle/015_reference_across_tuples_and_back (0.00s) --- PASS: TestEval/cycle/021_delayed_constraint_failure (0.00s) --- PASS: TestEval/cycle/023_reentrance (0.02s) --- PASS: TestEval/cycle/025_cannot_resolve_references_that_would_be_ambiguous (0.00s) --- PASS: TestEval/cycle/049_self-reference_cycles_conflicts_with_strings (0.00s) --- PASS: TestEval/cycle/050_resolved_self-reference_cycles_with_disjunctions (0.00s) --- PASS: TestEval/cycle/051_resolved_self-reference_cycles_with_disjunction (0.01s) --- PASS: TestEval/cycle/052_resolved_self-reference_cycles_with_disjunction_with_defaults (0.03s) --- PASS: TestEval/cycle/builtins (0.02s) --- PASS: TestEval/cycle/compbottom (0.03s) --- PASS: TestEval/cycle/compbottom2 (0.01s) --- PASS: TestEval/cycle/compbottomnofinal (0.03s) --- PASS: TestEval/cycle/comprehension (0.00s) --- PASS: TestEval/cycle/cycle_with_bounds (0.00s) --- PASS: TestEval/cycle/disjunction (0.01s) --- PASS: TestEval/cycle/expression (0.02s) --- PASS: TestEval/cycle/issue241 (0.01s) --- PASS: TestEval/cycle/issue242 (0.01s) --- PASS: TestEval/cycle/issue306 (0.00s) --- PASS: TestEval/cycle/issue429 (0.01s) --- PASS: TestEval/cycle/issue494 (0.01s) --- PASS: TestEval/cycle/issue502 (0.01s) --- PASS: TestEval/cycle/patterns (0.00s) --- PASS: TestEval/cycle/structural (0.05s) --- PASS: TestEval/cycle/with_defaults (0.00s) --- PASS: TestEval/definitions/026_combined_definitions (0.00s) --- PASS: TestEval/definitions/028_recursive_closing_starting_at_non-definition (0.00s) --- PASS: TestEval/definitions/032_definitions_with_embedding (0.00s) --- PASS: TestEval/definitions/033_Issue_#153 (0.00s) --- PASS: TestEval/definitions/036_closing_with_failed_optional (0.00s) --- PASS: TestEval/definitions/036_optionals_in_open_structs (0.00s) --- PASS: TestEval/definitions/037_closing_with_comprehensions (0.00s) --- PASS: TestEval/definitions/037_conjunction_of_optional_sets (0.00s) --- PASS: TestEval/definitions/038_continue_recursive_closing_for_optionals (0.00s) --- PASS: TestEval/definitions/039_augment_closed_optionals (0.00s) --- PASS: TestEval/definitions/comprehensions (0.00s) --- PASS: TestEval/definitions/defembed (0.00s) --- PASS: TestEval/definitions/dynamic (0.00s) --- PASS: TestEval/definitions/embed (0.01s) --- PASS: TestEval/definitions/files (0.00s) --- PASS: TestEval/definitions/hidden (1.45s) --- PASS: TestEval/definitions/issue271 (0.00s) --- PASS: TestEval/definitions/issue317 (0.01s) --- PASS: TestEval/definitions/issue320 (0.00s) --- PASS: TestEval/definitions/issue342 (0.00s) --- PASS: TestEval/definitions/issue359 (0.01s) --- PASS: TestEval/definitions/issue367 (0.00s) --- PASS: TestEval/definitions/issue370 (0.00s) --- PASS: TestEval/definitions/issue419 (0.00s) --- PASS: TestEval/definitions/issue471 (0.00s) --- PASS: TestEval/definitions/issue483 (0.00s) --- PASS: TestEval/definitions/issue491 (0.00s) --- PASS: TestEval/definitions/issue493 (0.00s) --- PASS: TestEval/definitions/issue496 (0.00s) --- PASS: TestEval/definitions/issue497 (0.00s) --- PASS: TestEval/definitions/issue533 (0.00s) --- PASS: TestEval/definitions/issue539 (0.00s) --- PASS: TestEval/definitions/list (0.00s) --- PASS: TestEval/definitions/visibility (0.00s) --- PASS: TestEval/disjunctions/019_ips (0.01s) --- PASS: TestEval/disjunctions/defembed (0.01s) --- PASS: TestEval/disjunctions/elimination (0.06s) --- PASS: TestEval/disjunctions/embed (0.01s) --- PASS: TestEval/disjunctions/errors (0.01s) --- PASS: TestEval/disjunctions/incomplete (0.01s) --- PASS: TestEval/disjunctions/operands (0.00s) --- PASS: TestEval/disjunctions/specdeviation (0.01s) --- PASS: TestEval/eval/basictypes (0.00s) --- PASS: TestEval/eval/bounds (0.01s) --- PASS: TestEval/eval/bulk (0.00s) --- PASS: TestEval/eval/closed_disjunction (0.00s) --- PASS: TestEval/eval/closedness (0.00s) --- PASS: TestEval/eval/comprehensions (0.00s) --- PASS: TestEval/eval/conflicts (0.00s) --- PASS: TestEval/eval/cycles_ref (0.00s) --- PASS: TestEval/eval/discontinuous (0.00s) --- PASS: TestEval/eval/disjunctions (0.01s) --- PASS: TestEval/eval/dynamic_field (0.00s) --- PASS: TestEval/eval/embed (0.00s) --- PASS: TestEval/eval/errunifiy (0.00s) --- PASS: TestEval/eval/expressions (0.00s) --- PASS: TestEval/eval/fields (0.00s) --- PASS: TestEval/eval/github (11.77s) --- PASS: TestEval/eval/incomplete (0.01s) --- PASS: TestEval/eval/incompleteperm (0.00s) --- PASS: TestEval/eval/issue285 (0.00s) --- PASS: TestEval/eval/issue295 (0.00s) --- PASS: TestEval/eval/issue349 (0.00s) --- PASS: TestEval/eval/issue353 (0.00s) --- PASS: TestEval/eval/issue494 (0.00s) --- PASS: TestEval/eval/issue500 (0.00s) --- PASS: TestEval/eval/issue545 (0.01s) --- PASS: TestEval/eval/issue599 (0.01s) --- PASS: TestEval/eval/let (0.00s) --- PASS: TestEval/eval/lists (0.00s) --- PASS: TestEval/eval/merge (0.00s) --- PASS: TestEval/eval/resolve_basic (0.00s) --- PASS: TestEval/eval/resolve_env (0.00s) --- PASS: TestEval/eval/selectors (0.00s) --- PASS: TestEval/eval/structs (0.00s) --- PASS: TestEval/eval/unify (0.00s) --- PASS: TestEval/export/000 (0.00s) --- PASS: TestEval/export/001 (0.00s) --- PASS: TestEval/export/002 (0.00s) --- PASS: TestEval/export/003 (0.00s) --- PASS: TestEval/export/004 (0.00s) --- PASS: TestEval/export/005 (0.00s) --- PASS: TestEval/export/006 (0.00s) --- PASS: TestEval/export/007 (0.00s) --- PASS: TestEval/export/008 (0.00s) --- PASS: TestEval/export/009 (0.00s) --- PASS: TestEval/export/010 (0.00s) --- PASS: TestEval/export/011 (0.00s) --- PASS: TestEval/export/012 (0.00s) --- PASS: TestEval/export/013 (0.00s) --- PASS: TestEval/export/014 (0.00s) --- PASS: TestEval/export/015 (0.00s) --- PASS: TestEval/export/016 (0.00s) --- PASS: TestEval/export/017 (0.00s) --- PASS: TestEval/export/018 (0.00s) --- PASS: TestEval/export/019 (0.00s) --- PASS: TestEval/export/020 (0.00s) --- PASS: TestEval/export/021 (0.00s) --- PASS: TestEval/export/022 (0.00s) --- PASS: TestEval/export/023 (0.00s) --- PASS: TestEval/export/024 (0.00s) --- PASS: TestEval/export/025 (0.00s) --- PASS: TestEval/export/026 (0.00s) --- PASS: TestEval/export/027 (0.00s) --- PASS: TestEval/export/028 (0.00s) --- PASS: TestEval/export/029 (0.00s) --- PASS: TestEval/export/030 (0.01s) --- PASS: TestEval/export/031 (0.00s) --- PASS: TestEval/export/032 (0.00s) --- PASS: TestEval/export/issue854 (2.85s) --- PASS: TestEval/fulleval/000_detect_conflicting_value (0.00s) --- PASS: TestEval/fulleval/001_conflicts_in_optional_fields_are_okay_ (0.00s) --- PASS: TestEval/fulleval/002_resolve_all_disjunctions (0.00s) --- PASS: TestEval/fulleval/003_field_templates (0.00s) --- PASS: TestEval/fulleval/004_field_comprehension (0.00s) --- PASS: TestEval/fulleval/005_conditional_field (0.00s) --- PASS: TestEval/fulleval/006_referencing_field_in_field_comprehension (0.00s) --- PASS: TestEval/fulleval/007_different_labels_for_templates (0.00s) --- PASS: TestEval/fulleval/008_nested_templates_in_one_field (0.00s) --- PASS: TestEval/fulleval/009_template_unification_within_one_struct (0.00s) --- PASS: TestEval/fulleval/010_field_comprehensions_with_multiple_keys (0.00s) --- PASS: TestEval/fulleval/011_field_comprehensions_with_templates (0.00s) --- PASS: TestEval/fulleval/012_disjunctions_of_lists (0.00s) --- PASS: TestEval/fulleval/013_normalization (0.00s) --- PASS: TestEval/fulleval/014_default_disambiguation_and_elimination (0.00s) --- PASS: TestEval/fulleval/016_struct_comprehension_with_template (0.00s) --- PASS: TestEval/fulleval/017_resolutions_in_struct_comprehension_keys (0.00s) --- PASS: TestEval/fulleval/018_recursive_evaluation_within_list (0.00s) --- PASS: TestEval/fulleval/020_complex_interaction_of_groundness (0.00s) --- PASS: TestEval/fulleval/021_complex_groundness_2 (0.00s) --- PASS: TestEval/fulleval/022_references_from_template_to_concrete (0.00s) --- PASS: TestEval/fulleval/024_Issue_#23 (0.00s) --- PASS: TestEval/fulleval/026_dont_convert_incomplete_errors_to_non-incomplete (0.01s) --- PASS: TestEval/fulleval/027_len_of_incomplete_types (0.00s) --- PASS: TestEval/fulleval/028_slice_rewrite_bug (0.00s) --- PASS: TestEval/fulleval/029_Issue_#94 (0.00s) --- PASS: TestEval/fulleval/030_retain_references_with_interleaved_embedding (0.00s) --- PASS: TestEval/fulleval/031_comparison_against_bottom (0.00s) --- PASS: TestEval/fulleval/032_or_builtin_should_not_fail_on_non-concrete_empty_list (0.01s) --- PASS: TestEval/fulleval/034_label_and_field_aliases (0.00s) --- PASS: TestEval/fulleval/035_optionals_with_label_filters (0.02s) --- PASS: TestEval/fulleval/040 (0.05s) --- PASS: TestEval/fulleval/041 (0.01s) --- PASS: TestEval/fulleval/042_cross-dependent_comprehension (0.01s) --- PASS: TestEval/fulleval/043_optional_expanded_before_lookup (0.00s) --- PASS: TestEval/fulleval/044_Issue_#178 (0.01s) --- PASS: TestEval/fulleval/046_non-structural_direct_cycles (0.01s) --- PASS: TestEval/fulleval/047_dont_bind_to_string_labels (0.00s) --- PASS: TestEval/fulleval/048_dont_pass_incomplete_values_to_builtins (0.00s) --- PASS: TestEval/fulleval/049_alias_reuse_in_nested_scope (0.00s) --- PASS: TestEval/fulleval/050_json_Marshaling_detects_incomplete (0.00s) --- PASS: TestEval/fulleval/051_detectIncompleteYAML (0.02s) --- PASS: TestEval/fulleval/052_detectIncompleteJSON (0.00s) --- PASS: TestEval/fulleval/053_issue312 (0.00s) --- PASS: TestEval/fulleval/054_issue312 (0.00s) --- PASS: TestEval/fulleval/055_issue318 (0.00s) --- PASS: TestEval/fulleval/056_issue314 (0.01s) --- PASS: TestEval/interpolation/041_interpolation (0.00s) --- PASS: TestEval/interpolation/042_multiline_interpolation (0.00s) --- PASS: TestEval/interpolation/incomplete (0.00s) --- PASS: TestEval/interpolation/issue487 (0.00s) --- PASS: TestEval/interpolation/scalars (0.00s) --- PASS: TestEval/lists/019_list_types (0.00s) --- PASS: TestEval/lists/020_list_arithmetic (0.02s) --- PASS: TestEval/lists/020_list_compilefail (0.00s) --- PASS: TestEval/lists/021_list_equality (0.01s) --- PASS: TestEval/packages/embed (0.47s) --- PASS: TestEval/packages/issue398 (0.48s) --- PASS: TestEval/packages/sub (0.21s) --- PASS: TestEval/references/embed_self (0.00s) --- PASS: TestEval/references/errors (0.00s) --- PASS: TestEval/references/incomplete (0.00s) --- PASS: TestEval/references/index (0.01s) --- PASS: TestEval/references/labels (0.01s) --- PASS: TestEval/references/labelstop (0.00s) --- PASS: TestEval/references/let (0.01s) --- PASS: TestEval/references/optional (0.00s) --- PASS: TestEval/references/package (0.06s) --- PASS: TestEval/references/value (0.00s) --- PASS: TestEval/resolve/000_convert___to_top (0.00s) --- PASS: TestEval/resolve/001 (0.00s) --- SKIP: TestEval/resolve/002 (0.00s) --- SKIP: TestEval/resolve/003_resolution_of_quoted_identifiers (0.00s) --- PASS: TestEval/resolve/004 (0.00s) --- PASS: TestEval/resolve/005_JSON (0.00s) --- PASS: TestEval/resolve/006_arithmetic (0.00s) --- PASS: TestEval/resolve/007_inequality (0.00s) --- PASS: TestEval/resolve/008_attributes (0.00s) --- PASS: TestEval/resolve/009_optional_field_unification (0.00s) --- PASS: TestEval/resolve/010_optional_field_resolves_to_incomplete (0.00s) --- PASS: TestEval/resolve/011_bounds (0.01s) --- PASS: TestEval/resolve/012_bound_conversions (0.00s) --- PASS: TestEval/resolve/013_custom_validators (0.00s) --- PASS: TestEval/resolve/014_null_coalescing (0.00s) --- PASS: TestEval/resolve/016_index (0.00s) --- PASS: TestEval/resolve/017_disjunctions_of_lists (0.00s) --- PASS: TestEval/resolve/018_slice (0.00s) --- PASS: TestEval/resolve/022_list_unification (0.00s) --- PASS: TestEval/resolve/023_correct_error_messages (0.00s) --- PASS: TestEval/resolve/024_structs (0.00s) --- PASS: TestEval/resolve/025_definitions (0.00s) --- PASS: TestEval/resolve/027_new-style_definitions (0.00s) --- PASS: TestEval/resolve/029_non-closed_definition_carries_over_closedness_to_enclosed_template (0.03s) --- PASS: TestEval/resolve/030_definitions_with_disjunctions (0.00s) --- PASS: TestEval/resolve/031_definitions_with_disjunctions_recurisive (0.00s) --- PASS: TestEval/resolve/033_top-level_definition_with_struct_and_disjunction (0.00s) --- PASS: TestEval/resolve/034_closing_structs (0.00s) --- PASS: TestEval/resolve/035_excluded_embedding_from_closing (0.00s) --- PASS: TestEval/resolve/038_incomplete_comprehensions (0.00s) --- PASS: TestEval/resolve/039_reference_to_root (0.00s) --- PASS: TestEval/resolve/040_references_from_template_to_concrete (0.00s) --- PASS: TestEval/resolve/043_diamond-shaped_constraints (0.00s) --- PASS: TestEval/resolve/044_field_templates (0.00s) --- PASS: TestEval/resolve/045_range_unification (0.01s) --- PASS: TestEval/resolve/046_predefined_ranges (0.00s) --- PASS: TestEval/resolve/047_struct_comprehensions (0.00s) --- PASS: TestEval/resolve/048_builtins (0.01s) --- PASS: TestEval/scalars/embed (0.01s) --- PASS: TestEval/scalars/emptystruct (0.00s) --- PASS: TestEval/scalars/yield (0.00s) === RUN TestX eval_test.go:111: --- SKIP: TestX (0.00s) === RUN TestFeatureBool === RUN TestFeatureBool/0 === RUN TestFeatureBool/1 === RUN TestFeatureBool/2 === RUN TestFeatureBool/3 === RUN TestFeatureBool/4 === RUN TestFeatureBool/5 === RUN TestFeatureBool/6 === RUN TestFeatureBool/7 === RUN TestFeatureBool/8 === RUN TestFeatureBool/9 === RUN TestFeatureBool/10 === RUN TestFeatureBool/11 === RUN TestFeatureBool/12 --- PASS: TestFeatureBool (0.00s) --- PASS: TestFeatureBool/0 (0.00s) --- PASS: TestFeatureBool/1 (0.00s) --- PASS: TestFeatureBool/2 (0.00s) --- PASS: TestFeatureBool/3 (0.00s) --- PASS: TestFeatureBool/4 (0.00s) --- PASS: TestFeatureBool/5 (0.00s) --- PASS: TestFeatureBool/6 (0.00s) --- PASS: TestFeatureBool/7 (0.00s) --- PASS: TestFeatureBool/8 (0.00s) --- PASS: TestFeatureBool/9 (0.00s) --- PASS: TestFeatureBool/10 (0.00s) --- PASS: TestFeatureBool/11 (0.00s) --- PASS: TestFeatureBool/12 (0.00s) === RUN TestOptionalTypes === RUN TestOptionalTypes/#00 === RUN TestOptionalTypes/#01 === RUN TestOptionalTypes/#02 === RUN TestOptionalTypes/#03 --- PASS: TestOptionalTypes (0.00s) --- PASS: TestOptionalTypes/#00 (0.00s) --- PASS: TestOptionalTypes/#01 (0.00s) --- PASS: TestOptionalTypes/#02 (0.00s) --- PASS: TestOptionalTypes/#03 (0.00s) PASS ok cuelang.org/go/internal/core/adt 19.867s === RUN TestCompile === RUN TestCompile/basicrewrite/000_errors === RUN TestCompile/basicrewrite/001_regexp === RUN TestCompile/basicrewrite/002_arithmetic === RUN TestCompile/basicrewrite/003_integer-specific_arithmetic === RUN TestCompile/basicrewrite/004_booleans === RUN TestCompile/basicrewrite/005_boolean_arithmetic === RUN TestCompile/basicrewrite/006_basic_type === RUN TestCompile/basicrewrite/007_strings_and_bytes === RUN TestCompile/basicrewrite/008_escaping === RUN TestCompile/basicrewrite/009_reference === RUN TestCompile/basicrewrite/010_lists === RUN TestCompile/basicrewrite/011_list_arithmetic === RUN TestCompile/basicrewrite/012_selecting === RUN TestCompile/basicrewrite/013_obj_unify === RUN TestCompile/basicrewrite/014_disjunctions === RUN TestCompile/basicrewrite/015_types === RUN TestCompile/basicrewrite/016_comparison === RUN TestCompile/basicrewrite/017_null === RUN TestCompile/basicrewrite/018_self-reference_cycles === RUN TestCompile/basicrewrite/019_resolved_self-reference_cycles === RUN TestCompile/basicrewrite/020_resolved_self-reference_cycles__Issue_19 === RUN TestCompile/basicrewrite/aliases/aliases === RUN TestCompile/benchmarks/deduparc === RUN TestCompile/benchmarks/dedupelem === RUN TestCompile/benchmarks/disjunction === RUN TestCompile/benchmarks/mergeddisjunction === RUN TestCompile/builtins/all === RUN TestCompile/builtins/and === RUN TestCompile/builtins/closed === RUN TestCompile/builtins/incomplete === RUN TestCompile/builtins/intdiv === RUN TestCompile/builtins/issue299 === RUN TestCompile/builtins/issue490 === RUN TestCompile/builtins/list/issue332 === RUN TestCompile/builtins/list/sort === RUN TestCompile/builtins/or txtar.go:202: Parse error: no CUE files in . === RUN TestCompile/builtins/validators === RUN TestCompile/choosedefault/000_pick_first === RUN TestCompile/choosedefault/001_simple_disambiguation_conflict === RUN TestCompile/choosedefault/002_associativity_of_defaults === RUN TestCompile/compile/erralias === RUN TestCompile/compile/fields === RUN TestCompile/compile/files === RUN TestCompile/compile/json === RUN TestCompile/compile/labels === RUN TestCompile/compile/let === RUN TestCompile/compile/scope === RUN TestCompile/comprehensions/015_list_comprehension === RUN TestCompile/comprehensions/045_comprehension_and_skipped_field === RUN TestCompile/comprehensions/errors === RUN TestCompile/comprehensions/fields === RUN TestCompile/comprehensions/for === RUN TestCompile/comprehensions/iferror === RUN TestCompile/comprehensions/incomplete === RUN TestCompile/comprehensions/issue287 === RUN TestCompile/comprehensions/issue293 === RUN TestCompile/comprehensions/issue436 === RUN TestCompile/comprehensions/issue507 === RUN TestCompile/comprehensions/issue837 === RUN TestCompile/comprehensions/issue843 === RUN TestCompile/comprehensions/lists === RUN TestCompile/comprehensions/multi === RUN TestCompile/comprehensions/nested === RUN TestCompile/comprehensions/nested2 === RUN TestCompile/comprehensions/nestembed === RUN TestCompile/cycle/015_reference_across_tuples_and_back === RUN TestCompile/cycle/021_delayed_constraint_failure === RUN TestCompile/cycle/023_reentrance === RUN TestCompile/cycle/025_cannot_resolve_references_that_would_be_ambiguous === RUN TestCompile/cycle/049_self-reference_cycles_conflicts_with_strings === RUN TestCompile/cycle/050_resolved_self-reference_cycles_with_disjunctions === RUN TestCompile/cycle/051_resolved_self-reference_cycles_with_disjunction === RUN TestCompile/cycle/052_resolved_self-reference_cycles_with_disjunction_with_defaults === RUN TestCompile/cycle/builtins === RUN TestCompile/cycle/compbottom === RUN TestCompile/cycle/compbottom2 === RUN TestCompile/cycle/compbottomnofinal === RUN TestCompile/cycle/comprehension === RUN TestCompile/cycle/cycle_with_bounds === RUN TestCompile/cycle/disjunction === RUN TestCompile/cycle/expression === RUN TestCompile/cycle/issue241 === RUN TestCompile/cycle/issue242 === RUN TestCompile/cycle/issue306 === RUN TestCompile/cycle/issue429 === RUN TestCompile/cycle/issue494 === RUN TestCompile/cycle/issue502 === RUN TestCompile/cycle/patterns === RUN TestCompile/cycle/structural === RUN TestCompile/cycle/with_defaults === RUN TestCompile/definitions/026_combined_definitions === RUN TestCompile/definitions/028_recursive_closing_starting_at_non-definition === RUN TestCompile/definitions/032_definitions_with_embedding === RUN TestCompile/definitions/033_Issue_#153 === RUN TestCompile/definitions/036_closing_with_failed_optional === RUN TestCompile/definitions/036_optionals_in_open_structs === RUN TestCompile/definitions/037_closing_with_comprehensions === RUN TestCompile/definitions/037_conjunction_of_optional_sets === RUN TestCompile/definitions/038_continue_recursive_closing_for_optionals === RUN TestCompile/definitions/039_augment_closed_optionals === RUN TestCompile/definitions/comprehensions === RUN TestCompile/definitions/defembed === RUN TestCompile/definitions/dynamic === RUN TestCompile/definitions/embed === RUN TestCompile/definitions/files === RUN TestCompile/definitions/hidden === RUN TestCompile/definitions/issue271 === RUN TestCompile/definitions/issue317 === RUN TestCompile/definitions/issue320 === RUN TestCompile/definitions/issue342 === RUN TestCompile/definitions/issue359 === RUN TestCompile/definitions/issue367 === RUN TestCompile/definitions/issue370 === RUN TestCompile/definitions/issue419 === RUN TestCompile/definitions/issue471 === RUN TestCompile/definitions/issue483 === RUN TestCompile/definitions/issue491 === RUN TestCompile/definitions/issue493 === RUN TestCompile/definitions/issue496 === RUN TestCompile/definitions/issue497 === RUN TestCompile/definitions/issue533 === RUN TestCompile/definitions/issue539 === RUN TestCompile/definitions/list === RUN TestCompile/definitions/visibility === RUN TestCompile/disjunctions/019_ips === RUN TestCompile/disjunctions/defembed === RUN TestCompile/disjunctions/elimination === RUN TestCompile/disjunctions/embed === RUN TestCompile/disjunctions/errors === RUN TestCompile/disjunctions/incomplete === RUN TestCompile/disjunctions/operands === RUN TestCompile/disjunctions/specdeviation === RUN TestCompile/eval/basictypes === RUN TestCompile/eval/bounds === RUN TestCompile/eval/bulk === RUN TestCompile/eval/closed_disjunction === RUN TestCompile/eval/closedness === RUN TestCompile/eval/comprehensions === RUN TestCompile/eval/conflicts === RUN TestCompile/eval/cycles_ref === RUN TestCompile/eval/discontinuous === RUN TestCompile/eval/disjunctions === RUN TestCompile/eval/dynamic_field === RUN TestCompile/eval/embed === RUN TestCompile/eval/errunifiy === RUN TestCompile/eval/expressions === RUN TestCompile/eval/fields === RUN TestCompile/eval/github === RUN TestCompile/eval/incomplete === RUN TestCompile/eval/incompleteperm === RUN TestCompile/eval/issue285 === RUN TestCompile/eval/issue295 === RUN TestCompile/eval/issue349 === RUN TestCompile/eval/issue353 === RUN TestCompile/eval/issue494 === RUN TestCompile/eval/issue500 === RUN TestCompile/eval/issue545 === RUN TestCompile/eval/issue599 === RUN TestCompile/eval/let === RUN TestCompile/eval/lists === RUN TestCompile/eval/merge === RUN TestCompile/eval/resolve_basic === RUN TestCompile/eval/resolve_env === RUN TestCompile/eval/selectors === RUN TestCompile/eval/structs === RUN TestCompile/eval/unify === RUN TestCompile/export/000 === RUN TestCompile/export/001 === RUN TestCompile/export/002 === RUN TestCompile/export/003 === RUN TestCompile/export/004 === RUN TestCompile/export/005 === RUN TestCompile/export/006 === RUN TestCompile/export/007 === RUN TestCompile/export/008 === RUN TestCompile/export/009 === RUN TestCompile/export/010 === RUN TestCompile/export/011 === RUN TestCompile/export/012 === RUN TestCompile/export/013 === RUN TestCompile/export/014 === RUN TestCompile/export/015 === RUN TestCompile/export/016 === RUN TestCompile/export/017 === RUN TestCompile/export/018 === RUN TestCompile/export/019 === RUN TestCompile/export/020 === RUN TestCompile/export/021 === RUN TestCompile/export/022 === RUN TestCompile/export/023 === RUN TestCompile/export/024 === RUN TestCompile/export/025 === RUN TestCompile/export/026 === RUN TestCompile/export/027 === RUN TestCompile/export/028 === RUN TestCompile/export/029 === RUN TestCompile/export/030 === RUN TestCompile/export/031 === RUN TestCompile/export/032 === RUN TestCompile/export/issue854 === RUN TestCompile/fulleval/000_detect_conflicting_value === RUN TestCompile/fulleval/001_conflicts_in_optional_fields_are_okay_ === RUN TestCompile/fulleval/002_resolve_all_disjunctions === RUN TestCompile/fulleval/003_field_templates === RUN TestCompile/fulleval/004_field_comprehension === RUN TestCompile/fulleval/005_conditional_field === RUN TestCompile/fulleval/006_referencing_field_in_field_comprehension === RUN TestCompile/fulleval/007_different_labels_for_templates === RUN TestCompile/fulleval/008_nested_templates_in_one_field === RUN TestCompile/fulleval/009_template_unification_within_one_struct === RUN TestCompile/fulleval/010_field_comprehensions_with_multiple_keys === RUN TestCompile/fulleval/011_field_comprehensions_with_templates === RUN TestCompile/fulleval/012_disjunctions_of_lists === RUN TestCompile/fulleval/013_normalization === RUN TestCompile/fulleval/014_default_disambiguation_and_elimination === RUN TestCompile/fulleval/016_struct_comprehension_with_template === RUN TestCompile/fulleval/017_resolutions_in_struct_comprehension_keys === RUN TestCompile/fulleval/018_recursive_evaluation_within_list === RUN TestCompile/fulleval/020_complex_interaction_of_groundness === RUN TestCompile/fulleval/021_complex_groundness_2 === RUN TestCompile/fulleval/022_references_from_template_to_concrete === RUN TestCompile/fulleval/024_Issue_#23 === RUN TestCompile/fulleval/026_dont_convert_incomplete_errors_to_non-incomplete === RUN TestCompile/fulleval/027_len_of_incomplete_types === RUN TestCompile/fulleval/028_slice_rewrite_bug === RUN TestCompile/fulleval/029_Issue_#94 === RUN TestCompile/fulleval/030_retain_references_with_interleaved_embedding === RUN TestCompile/fulleval/031_comparison_against_bottom === RUN TestCompile/fulleval/032_or_builtin_should_not_fail_on_non-concrete_empty_list === RUN TestCompile/fulleval/034_label_and_field_aliases === RUN TestCompile/fulleval/035_optionals_with_label_filters === RUN TestCompile/fulleval/040 === RUN TestCompile/fulleval/041 === RUN TestCompile/fulleval/042_cross-dependent_comprehension === RUN TestCompile/fulleval/043_optional_expanded_before_lookup === RUN TestCompile/fulleval/044_Issue_#178 === RUN TestCompile/fulleval/046_non-structural_direct_cycles === RUN TestCompile/fulleval/047_dont_bind_to_string_labels === RUN TestCompile/fulleval/048_dont_pass_incomplete_values_to_builtins === RUN TestCompile/fulleval/049_alias_reuse_in_nested_scope === RUN TestCompile/fulleval/050_json_Marshaling_detects_incomplete === RUN TestCompile/fulleval/051_detectIncompleteYAML === RUN TestCompile/fulleval/052_detectIncompleteJSON === RUN TestCompile/fulleval/053_issue312 === RUN TestCompile/fulleval/054_issue312 === RUN TestCompile/fulleval/055_issue318 === RUN TestCompile/fulleval/056_issue314 === RUN TestCompile/interpolation/041_interpolation === RUN TestCompile/interpolation/042_multiline_interpolation === RUN TestCompile/interpolation/incomplete === RUN TestCompile/interpolation/issue487 === RUN TestCompile/interpolation/scalars === RUN TestCompile/lists/019_list_types === RUN TestCompile/lists/020_list_arithmetic === RUN TestCompile/lists/020_list_compilefail === RUN TestCompile/lists/021_list_equality === RUN TestCompile/packages/embed === RUN TestCompile/packages/issue398 === RUN TestCompile/packages/sub === RUN TestCompile/references/embed_self === RUN TestCompile/references/errors === RUN TestCompile/references/incomplete === RUN TestCompile/references/index === RUN TestCompile/references/labels === RUN TestCompile/references/labelstop === RUN TestCompile/references/let === RUN TestCompile/references/optional === RUN TestCompile/references/package === RUN TestCompile/references/value === RUN TestCompile/resolve/000_convert___to_top === RUN TestCompile/resolve/001 === RUN TestCompile/resolve/002 txtar.go:280: === RUN TestCompile/resolve/003_resolution_of_quoted_identifiers txtar.go:280: === RUN TestCompile/resolve/004 === RUN TestCompile/resolve/005_JSON === RUN TestCompile/resolve/006_arithmetic === RUN TestCompile/resolve/007_inequality === RUN TestCompile/resolve/008_attributes === RUN TestCompile/resolve/009_optional_field_unification === RUN TestCompile/resolve/010_optional_field_resolves_to_incomplete === RUN TestCompile/resolve/011_bounds === RUN TestCompile/resolve/012_bound_conversions === RUN TestCompile/resolve/013_custom_validators === RUN TestCompile/resolve/014_null_coalescing === RUN TestCompile/resolve/016_index === RUN TestCompile/resolve/017_disjunctions_of_lists === RUN TestCompile/resolve/018_slice === RUN TestCompile/resolve/022_list_unification === RUN TestCompile/resolve/023_correct_error_messages === RUN TestCompile/resolve/024_structs === RUN TestCompile/resolve/025_definitions === RUN TestCompile/resolve/027_new-style_definitions === RUN TestCompile/resolve/029_non-closed_definition_carries_over_closedness_to_enclosed_template === RUN TestCompile/resolve/030_definitions_with_disjunctions === RUN TestCompile/resolve/031_definitions_with_disjunctions_recurisive === RUN TestCompile/resolve/033_top-level_definition_with_struct_and_disjunction === RUN TestCompile/resolve/034_closing_structs === RUN TestCompile/resolve/035_excluded_embedding_from_closing === RUN TestCompile/resolve/038_incomplete_comprehensions === RUN TestCompile/resolve/039_reference_to_root === RUN TestCompile/resolve/040_references_from_template_to_concrete === RUN TestCompile/resolve/043_diamond-shaped_constraints === RUN TestCompile/resolve/044_field_templates === RUN TestCompile/resolve/045_range_unification === RUN TestCompile/resolve/046_predefined_ranges === RUN TestCompile/resolve/047_struct_comprehensions === RUN TestCompile/resolve/048_builtins === RUN TestCompile/scalars/embed === RUN TestCompile/scalars/emptystruct === RUN TestCompile/scalars/yield --- PASS: TestCompile (10.18s) --- PASS: TestCompile/basicrewrite/000_errors (0.03s) --- PASS: TestCompile/basicrewrite/001_regexp (0.01s) --- PASS: TestCompile/basicrewrite/002_arithmetic (0.01s) --- PASS: TestCompile/basicrewrite/003_integer-specific_arithmetic (0.00s) --- PASS: TestCompile/basicrewrite/004_booleans (0.00s) --- PASS: TestCompile/basicrewrite/005_boolean_arithmetic (0.00s) --- PASS: TestCompile/basicrewrite/006_basic_type (0.00s) --- PASS: TestCompile/basicrewrite/007_strings_and_bytes (0.00s) --- PASS: TestCompile/basicrewrite/008_escaping (0.00s) --- PASS: TestCompile/basicrewrite/009_reference (0.00s) --- PASS: TestCompile/basicrewrite/010_lists (0.00s) --- PASS: TestCompile/basicrewrite/011_list_arithmetic (0.00s) --- PASS: TestCompile/basicrewrite/012_selecting (0.00s) --- PASS: TestCompile/basicrewrite/013_obj_unify (0.00s) --- PASS: TestCompile/basicrewrite/014_disjunctions (0.00s) --- PASS: TestCompile/basicrewrite/015_types (0.00s) --- PASS: TestCompile/basicrewrite/016_comparison (0.00s) --- PASS: TestCompile/basicrewrite/017_null (0.00s) --- PASS: TestCompile/basicrewrite/018_self-reference_cycles (0.00s) --- PASS: TestCompile/basicrewrite/019_resolved_self-reference_cycles (0.04s) --- PASS: TestCompile/basicrewrite/020_resolved_self-reference_cycles__Issue_19 (0.00s) --- PASS: TestCompile/basicrewrite/aliases/aliases (0.03s) --- PASS: TestCompile/benchmarks/deduparc (0.00s) --- PASS: TestCompile/benchmarks/dedupelem (0.01s) --- PASS: TestCompile/benchmarks/disjunction (0.01s) --- PASS: TestCompile/benchmarks/mergeddisjunction (0.01s) --- PASS: TestCompile/builtins/all (0.00s) --- PASS: TestCompile/builtins/and (0.00s) --- PASS: TestCompile/builtins/closed (0.00s) --- PASS: TestCompile/builtins/incomplete (0.01s) --- PASS: TestCompile/builtins/intdiv (0.00s) --- PASS: TestCompile/builtins/issue299 (0.00s) --- PASS: TestCompile/builtins/issue490 (0.00s) --- PASS: TestCompile/builtins/list/issue332 (0.00s) --- PASS: TestCompile/builtins/list/sort (0.00s) --- SKIP: TestCompile/builtins/or (0.64s) --- PASS: TestCompile/builtins/validators (0.01s) --- PASS: TestCompile/choosedefault/000_pick_first (0.00s) --- PASS: TestCompile/choosedefault/001_simple_disambiguation_conflict (0.00s) --- PASS: TestCompile/choosedefault/002_associativity_of_defaults (0.00s) --- PASS: TestCompile/compile/erralias (0.02s) --- PASS: TestCompile/compile/fields (0.00s) --- PASS: TestCompile/compile/files (0.00s) --- PASS: TestCompile/compile/json (0.00s) --- PASS: TestCompile/compile/labels (0.00s) --- PASS: TestCompile/compile/let (0.00s) --- PASS: TestCompile/compile/scope (0.00s) --- PASS: TestCompile/comprehensions/015_list_comprehension (0.00s) --- PASS: TestCompile/comprehensions/045_comprehension_and_skipped_field (0.00s) --- PASS: TestCompile/comprehensions/errors (0.00s) --- PASS: TestCompile/comprehensions/fields (0.00s) --- PASS: TestCompile/comprehensions/for (0.00s) --- PASS: TestCompile/comprehensions/iferror (0.01s) --- PASS: TestCompile/comprehensions/incomplete (0.00s) --- PASS: TestCompile/comprehensions/issue287 (0.00s) --- PASS: TestCompile/comprehensions/issue293 (0.00s) --- PASS: TestCompile/comprehensions/issue436 (0.00s) --- PASS: TestCompile/comprehensions/issue507 (0.00s) --- PASS: TestCompile/comprehensions/issue837 (0.00s) --- PASS: TestCompile/comprehensions/issue843 (0.00s) --- PASS: TestCompile/comprehensions/lists (0.00s) --- PASS: TestCompile/comprehensions/multi (0.00s) --- PASS: TestCompile/comprehensions/nested (0.01s) --- PASS: TestCompile/comprehensions/nested2 (0.00s) --- PASS: TestCompile/comprehensions/nestembed (0.00s) --- PASS: TestCompile/cycle/015_reference_across_tuples_and_back (0.00s) --- PASS: TestCompile/cycle/021_delayed_constraint_failure (0.00s) --- PASS: TestCompile/cycle/023_reentrance (0.00s) --- PASS: TestCompile/cycle/025_cannot_resolve_references_that_would_be_ambiguous (0.00s) --- PASS: TestCompile/cycle/049_self-reference_cycles_conflicts_with_strings (0.00s) --- PASS: TestCompile/cycle/050_resolved_self-reference_cycles_with_disjunctions (0.00s) --- PASS: TestCompile/cycle/051_resolved_self-reference_cycles_with_disjunction (0.01s) --- PASS: TestCompile/cycle/052_resolved_self-reference_cycles_with_disjunction_with_defaults (0.00s) --- PASS: TestCompile/cycle/builtins (0.00s) --- PASS: TestCompile/cycle/compbottom (0.03s) --- PASS: TestCompile/cycle/compbottom2 (0.01s) --- PASS: TestCompile/cycle/compbottomnofinal (0.02s) --- PASS: TestCompile/cycle/comprehension (0.00s) --- PASS: TestCompile/cycle/cycle_with_bounds (0.00s) --- PASS: TestCompile/cycle/disjunction (0.00s) --- PASS: TestCompile/cycle/expression (0.01s) --- PASS: TestCompile/cycle/issue241 (0.00s) --- PASS: TestCompile/cycle/issue242 (0.01s) --- PASS: TestCompile/cycle/issue306 (0.00s) --- PASS: TestCompile/cycle/issue429 (0.00s) --- PASS: TestCompile/cycle/issue494 (0.00s) --- PASS: TestCompile/cycle/issue502 (0.02s) --- PASS: TestCompile/cycle/patterns (0.00s) --- PASS: TestCompile/cycle/structural (0.02s) --- PASS: TestCompile/cycle/with_defaults (0.00s) --- PASS: TestCompile/definitions/026_combined_definitions (0.00s) --- PASS: TestCompile/definitions/028_recursive_closing_starting_at_non-definition (0.00s) --- PASS: TestCompile/definitions/032_definitions_with_embedding (0.00s) --- PASS: TestCompile/definitions/033_Issue_#153 (0.00s) --- PASS: TestCompile/definitions/036_closing_with_failed_optional (0.00s) --- PASS: TestCompile/definitions/036_optionals_in_open_structs (0.00s) --- PASS: TestCompile/definitions/037_closing_with_comprehensions (0.00s) --- PASS: TestCompile/definitions/037_conjunction_of_optional_sets (0.00s) --- PASS: TestCompile/definitions/038_continue_recursive_closing_for_optionals (0.00s) --- PASS: TestCompile/definitions/039_augment_closed_optionals (0.00s) --- PASS: TestCompile/definitions/comprehensions (0.00s) --- PASS: TestCompile/definitions/defembed (0.00s) --- PASS: TestCompile/definitions/dynamic (0.00s) --- PASS: TestCompile/definitions/embed (0.00s) --- PASS: TestCompile/definitions/files (0.00s) --- PASS: TestCompile/definitions/hidden (1.88s) --- PASS: TestCompile/definitions/issue271 (0.00s) --- PASS: TestCompile/definitions/issue317 (0.00s) --- PASS: TestCompile/definitions/issue320 (0.00s) --- PASS: TestCompile/definitions/issue342 (0.00s) --- PASS: TestCompile/definitions/issue359 (0.00s) --- PASS: TestCompile/definitions/issue367 (0.00s) --- PASS: TestCompile/definitions/issue370 (0.00s) --- PASS: TestCompile/definitions/issue419 (0.00s) --- PASS: TestCompile/definitions/issue471 (0.00s) --- PASS: TestCompile/definitions/issue483 (0.00s) --- PASS: TestCompile/definitions/issue491 (0.00s) --- PASS: TestCompile/definitions/issue493 (0.00s) --- PASS: TestCompile/definitions/issue496 (0.00s) --- PASS: TestCompile/definitions/issue497 (0.00s) --- PASS: TestCompile/definitions/issue533 (0.00s) --- PASS: TestCompile/definitions/issue539 (0.00s) --- PASS: TestCompile/definitions/list (0.00s) --- PASS: TestCompile/definitions/visibility (0.00s) --- PASS: TestCompile/disjunctions/019_ips (0.00s) --- PASS: TestCompile/disjunctions/defembed (0.01s) --- PASS: TestCompile/disjunctions/elimination (0.04s) --- PASS: TestCompile/disjunctions/embed (0.00s) --- PASS: TestCompile/disjunctions/errors (0.00s) --- PASS: TestCompile/disjunctions/incomplete (0.00s) --- PASS: TestCompile/disjunctions/operands (0.00s) --- PASS: TestCompile/disjunctions/specdeviation (0.00s) --- PASS: TestCompile/eval/basictypes (0.02s) --- PASS: TestCompile/eval/bounds (0.01s) --- PASS: TestCompile/eval/bulk (0.00s) --- PASS: TestCompile/eval/closed_disjunction (0.00s) --- PASS: TestCompile/eval/closedness (0.00s) --- PASS: TestCompile/eval/comprehensions (0.00s) --- PASS: TestCompile/eval/conflicts (0.00s) --- PASS: TestCompile/eval/cycles_ref (0.00s) --- PASS: TestCompile/eval/discontinuous (0.00s) --- PASS: TestCompile/eval/disjunctions (0.02s) --- PASS: TestCompile/eval/dynamic_field (0.01s) --- PASS: TestCompile/eval/embed (0.00s) --- PASS: TestCompile/eval/errunifiy (0.00s) --- PASS: TestCompile/eval/expressions (0.00s) --- PASS: TestCompile/eval/fields (0.00s) --- PASS: TestCompile/eval/github (0.15s) --- PASS: TestCompile/eval/incomplete (0.00s) --- PASS: TestCompile/eval/incompleteperm (0.00s) --- PASS: TestCompile/eval/issue285 (0.00s) --- PASS: TestCompile/eval/issue295 (0.03s) --- PASS: TestCompile/eval/issue349 (0.00s) --- PASS: TestCompile/eval/issue353 (0.00s) --- PASS: TestCompile/eval/issue494 (0.02s) --- PASS: TestCompile/eval/issue500 (0.01s) --- PASS: TestCompile/eval/issue545 (0.00s) --- PASS: TestCompile/eval/issue599 (0.00s) --- PASS: TestCompile/eval/let (0.00s) --- PASS: TestCompile/eval/lists (0.00s) --- PASS: TestCompile/eval/merge (0.00s) --- PASS: TestCompile/eval/resolve_basic (0.00s) --- PASS: TestCompile/eval/resolve_env (0.00s) --- PASS: TestCompile/eval/selectors (0.00s) --- PASS: TestCompile/eval/structs (0.00s) --- PASS: TestCompile/eval/unify (0.00s) --- PASS: TestCompile/export/000 (0.00s) --- PASS: TestCompile/export/001 (0.00s) --- PASS: TestCompile/export/002 (0.00s) --- PASS: TestCompile/export/003 (0.00s) --- PASS: TestCompile/export/004 (0.00s) --- PASS: TestCompile/export/005 (0.00s) --- PASS: TestCompile/export/006 (0.00s) --- PASS: TestCompile/export/007 (0.00s) --- PASS: TestCompile/export/008 (0.00s) --- PASS: TestCompile/export/009 (0.00s) --- PASS: TestCompile/export/010 (0.00s) --- PASS: TestCompile/export/011 (0.00s) --- PASS: TestCompile/export/012 (0.00s) --- PASS: TestCompile/export/013 (0.00s) --- PASS: TestCompile/export/014 (0.00s) --- PASS: TestCompile/export/015 (0.00s) --- PASS: TestCompile/export/016 (0.00s) --- PASS: TestCompile/export/017 (0.00s) --- PASS: TestCompile/export/018 (0.00s) --- PASS: TestCompile/export/019 (0.00s) --- PASS: TestCompile/export/020 (0.00s) --- PASS: TestCompile/export/021 (0.00s) --- PASS: TestCompile/export/022 (0.00s) --- PASS: TestCompile/export/023 (0.00s) --- PASS: TestCompile/export/024 (0.00s) --- PASS: TestCompile/export/025 (0.00s) --- PASS: TestCompile/export/026 (0.00s) --- PASS: TestCompile/export/027 (0.00s) --- PASS: TestCompile/export/028 (0.00s) --- PASS: TestCompile/export/029 (0.00s) --- PASS: TestCompile/export/030 (0.00s) --- PASS: TestCompile/export/031 (0.00s) --- PASS: TestCompile/export/032 (0.00s) --- PASS: TestCompile/export/issue854 (4.17s) --- PASS: TestCompile/fulleval/000_detect_conflicting_value (0.00s) --- PASS: TestCompile/fulleval/001_conflicts_in_optional_fields_are_okay_ (0.00s) --- PASS: TestCompile/fulleval/002_resolve_all_disjunctions (0.00s) --- PASS: TestCompile/fulleval/003_field_templates (0.00s) --- PASS: TestCompile/fulleval/004_field_comprehension (0.00s) --- PASS: TestCompile/fulleval/005_conditional_field (0.01s) --- PASS: TestCompile/fulleval/006_referencing_field_in_field_comprehension (0.00s) --- PASS: TestCompile/fulleval/007_different_labels_for_templates (0.00s) --- PASS: TestCompile/fulleval/008_nested_templates_in_one_field (0.00s) --- PASS: TestCompile/fulleval/009_template_unification_within_one_struct (0.00s) --- PASS: TestCompile/fulleval/010_field_comprehensions_with_multiple_keys (0.01s) --- PASS: TestCompile/fulleval/011_field_comprehensions_with_templates (0.00s) --- PASS: TestCompile/fulleval/012_disjunctions_of_lists (0.01s) --- PASS: TestCompile/fulleval/013_normalization (0.00s) --- PASS: TestCompile/fulleval/014_default_disambiguation_and_elimination (0.00s) --- PASS: TestCompile/fulleval/016_struct_comprehension_with_template (0.00s) --- PASS: TestCompile/fulleval/017_resolutions_in_struct_comprehension_keys (0.00s) --- PASS: TestCompile/fulleval/018_recursive_evaluation_within_list (0.00s) --- PASS: TestCompile/fulleval/020_complex_interaction_of_groundness (0.00s) --- PASS: TestCompile/fulleval/021_complex_groundness_2 (0.00s) --- PASS: TestCompile/fulleval/022_references_from_template_to_concrete (0.00s) --- PASS: TestCompile/fulleval/024_Issue_#23 (0.00s) --- PASS: TestCompile/fulleval/026_dont_convert_incomplete_errors_to_non-incomplete (0.00s) --- PASS: TestCompile/fulleval/027_len_of_incomplete_types (0.00s) --- PASS: TestCompile/fulleval/028_slice_rewrite_bug (0.00s) --- PASS: TestCompile/fulleval/029_Issue_#94 (0.00s) --- PASS: TestCompile/fulleval/030_retain_references_with_interleaved_embedding (0.00s) --- PASS: TestCompile/fulleval/031_comparison_against_bottom (0.00s) --- PASS: TestCompile/fulleval/032_or_builtin_should_not_fail_on_non-concrete_empty_list (0.00s) --- PASS: TestCompile/fulleval/034_label_and_field_aliases (0.00s) --- PASS: TestCompile/fulleval/035_optionals_with_label_filters (0.00s) --- PASS: TestCompile/fulleval/040 (0.00s) --- PASS: TestCompile/fulleval/041 (0.00s) --- PASS: TestCompile/fulleval/042_cross-dependent_comprehension (0.00s) --- PASS: TestCompile/fulleval/043_optional_expanded_before_lookup (0.00s) --- PASS: TestCompile/fulleval/044_Issue_#178 (0.00s) --- PASS: TestCompile/fulleval/046_non-structural_direct_cycles (0.00s) --- PASS: TestCompile/fulleval/047_dont_bind_to_string_labels (0.00s) --- PASS: TestCompile/fulleval/048_dont_pass_incomplete_values_to_builtins (0.00s) --- PASS: TestCompile/fulleval/049_alias_reuse_in_nested_scope (0.00s) --- PASS: TestCompile/fulleval/050_json_Marshaling_detects_incomplete (0.00s) --- PASS: TestCompile/fulleval/051_detectIncompleteYAML (0.01s) --- PASS: TestCompile/fulleval/052_detectIncompleteJSON (0.00s) --- PASS: TestCompile/fulleval/053_issue312 (0.00s) --- PASS: TestCompile/fulleval/054_issue312 (0.00s) --- PASS: TestCompile/fulleval/055_issue318 (0.00s) --- PASS: TestCompile/fulleval/056_issue314 (0.01s) --- PASS: TestCompile/interpolation/041_interpolation (0.00s) --- PASS: TestCompile/interpolation/042_multiline_interpolation (0.00s) --- PASS: TestCompile/interpolation/incomplete (0.00s) --- PASS: TestCompile/interpolation/issue487 (0.00s) --- PASS: TestCompile/interpolation/scalars (0.00s) --- PASS: TestCompile/lists/019_list_types (0.00s) --- PASS: TestCompile/lists/020_list_arithmetic (0.01s) --- PASS: TestCompile/lists/020_list_compilefail (0.00s) --- PASS: TestCompile/lists/021_list_equality (0.01s) --- PASS: TestCompile/packages/embed (0.99s) --- PASS: TestCompile/packages/issue398 (0.68s) --- PASS: TestCompile/packages/sub (0.32s) --- PASS: TestCompile/references/embed_self (0.00s) --- PASS: TestCompile/references/errors (0.00s) --- PASS: TestCompile/references/incomplete (0.00s) --- PASS: TestCompile/references/index (0.00s) --- PASS: TestCompile/references/labels (0.01s) --- PASS: TestCompile/references/labelstop (0.00s) --- PASS: TestCompile/references/let (0.01s) --- PASS: TestCompile/references/optional (0.00s) --- PASS: TestCompile/references/package (0.09s) --- PASS: TestCompile/references/value (0.00s) --- PASS: TestCompile/resolve/000_convert___to_top (0.00s) --- PASS: TestCompile/resolve/001 (0.00s) --- SKIP: TestCompile/resolve/002 (0.00s) --- SKIP: TestCompile/resolve/003_resolution_of_quoted_identifiers (0.00s) --- PASS: TestCompile/resolve/004 (0.00s) --- PASS: TestCompile/resolve/005_JSON (0.00s) --- PASS: TestCompile/resolve/006_arithmetic (0.00s) --- PASS: TestCompile/resolve/007_inequality (0.00s) --- PASS: TestCompile/resolve/008_attributes (0.00s) --- PASS: TestCompile/resolve/009_optional_field_unification (0.00s) --- PASS: TestCompile/resolve/010_optional_field_resolves_to_incomplete (0.00s) --- PASS: TestCompile/resolve/011_bounds (0.01s) --- PASS: TestCompile/resolve/012_bound_conversions (0.00s) --- PASS: TestCompile/resolve/013_custom_validators (0.00s) --- PASS: TestCompile/resolve/014_null_coalescing (0.00s) --- PASS: TestCompile/resolve/016_index (0.00s) --- PASS: TestCompile/resolve/017_disjunctions_of_lists (0.00s) --- PASS: TestCompile/resolve/018_slice (0.00s) --- PASS: TestCompile/resolve/022_list_unification (0.00s) --- PASS: TestCompile/resolve/023_correct_error_messages (0.00s) --- PASS: TestCompile/resolve/024_structs (0.00s) --- PASS: TestCompile/resolve/025_definitions (0.00s) --- PASS: TestCompile/resolve/027_new-style_definitions (0.00s) --- PASS: TestCompile/resolve/029_non-closed_definition_carries_over_closedness_to_enclosed_template (0.00s) --- PASS: TestCompile/resolve/030_definitions_with_disjunctions (0.00s) --- PASS: TestCompile/resolve/031_definitions_with_disjunctions_recurisive (0.00s) --- PASS: TestCompile/resolve/033_top-level_definition_with_struct_and_disjunction (0.00s) --- PASS: TestCompile/resolve/034_closing_structs (0.00s) --- PASS: TestCompile/resolve/035_excluded_embedding_from_closing (0.00s) --- PASS: TestCompile/resolve/038_incomplete_comprehensions (0.00s) --- PASS: TestCompile/resolve/039_reference_to_root (0.00s) --- PASS: TestCompile/resolve/040_references_from_template_to_concrete (0.00s) --- PASS: TestCompile/resolve/043_diamond-shaped_constraints (0.00s) --- PASS: TestCompile/resolve/044_field_templates (0.00s) --- PASS: TestCompile/resolve/045_range_unification (0.01s) --- PASS: TestCompile/resolve/046_predefined_ranges (0.02s) --- PASS: TestCompile/resolve/047_struct_comprehensions (0.00s) --- PASS: TestCompile/resolve/048_builtins (0.00s) --- PASS: TestCompile/scalars/embed (0.01s) --- PASS: TestCompile/scalars/emptystruct (0.00s) --- PASS: TestCompile/scalars/yield (0.00s) === RUN TestX compile_test.go:92: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/internal/core/compile 10.595s === RUN TestConvert === RUN TestConvert/#00 === RUN TestConvert/#01 === RUN TestConvert/#02 === RUN TestConvert/#03 === RUN TestConvert/#04 === RUN TestConvert/#05 === RUN TestConvert/#06 === RUN TestConvert/#07 === RUN TestConvert/#08 === RUN TestConvert/#09 === RUN TestConvert/#10 === RUN TestConvert/#11 === RUN TestConvert/#12 === RUN TestConvert/#13 === RUN TestConvert/#14 === RUN TestConvert/#15 === RUN TestConvert/#16 === RUN TestConvert/#17 === RUN TestConvert/#18 === RUN TestConvert/#19 === RUN TestConvert/#20 === RUN TestConvert/#21 === RUN TestConvert/#22 === RUN TestConvert/#23 === RUN TestConvert/#24 === RUN TestConvert/#25 === RUN TestConvert/#26 === RUN TestConvert/#27 === RUN TestConvert/#28 === RUN TestConvert/#29 === RUN TestConvert/#30 === RUN TestConvert/#31 === RUN TestConvert/#32 === RUN TestConvert/#33 === RUN TestConvert/#34 === RUN TestConvert/#35 === RUN TestConvert/#36 === RUN TestConvert/#37 === RUN TestConvert/#38 === RUN TestConvert/#39 === RUN TestConvert/#40 === RUN TestConvert/#41 === RUN TestConvert/#42 === RUN TestConvert/#43 === RUN TestConvert/#44 === RUN TestConvert/#45 === RUN TestConvert/#46 === RUN TestConvert/#47 === RUN TestConvert/#48 === RUN TestConvert/#49 --- PASS: TestConvert (0.09s) --- PASS: TestConvert/#00 (0.02s) --- PASS: TestConvert/#01 (0.00s) --- PASS: TestConvert/#02 (0.00s) --- PASS: TestConvert/#03 (0.00s) --- PASS: TestConvert/#04 (0.01s) --- PASS: TestConvert/#05 (0.00s) --- PASS: TestConvert/#06 (0.00s) --- PASS: TestConvert/#07 (0.00s) --- PASS: TestConvert/#08 (0.00s) --- PASS: TestConvert/#09 (0.00s) --- PASS: TestConvert/#10 (0.00s) --- PASS: TestConvert/#11 (0.00s) --- PASS: TestConvert/#12 (0.00s) --- PASS: TestConvert/#13 (0.00s) --- PASS: TestConvert/#14 (0.00s) --- PASS: TestConvert/#15 (0.00s) --- PASS: TestConvert/#16 (0.00s) --- PASS: TestConvert/#17 (0.00s) --- PASS: TestConvert/#18 (0.00s) --- PASS: TestConvert/#19 (0.00s) --- PASS: TestConvert/#20 (0.00s) --- PASS: TestConvert/#21 (0.00s) --- PASS: TestConvert/#22 (0.00s) --- PASS: TestConvert/#23 (0.00s) --- PASS: TestConvert/#24 (0.01s) --- PASS: TestConvert/#25 (0.00s) --- PASS: TestConvert/#26 (0.00s) --- PASS: TestConvert/#27 (0.00s) --- PASS: TestConvert/#28 (0.00s) --- PASS: TestConvert/#29 (0.00s) --- PASS: TestConvert/#30 (0.00s) --- PASS: TestConvert/#31 (0.00s) --- PASS: TestConvert/#32 (0.00s) --- PASS: TestConvert/#33 (0.00s) --- PASS: TestConvert/#34 (0.00s) --- PASS: TestConvert/#35 (0.00s) --- PASS: TestConvert/#36 (0.00s) --- PASS: TestConvert/#37 (0.00s) --- PASS: TestConvert/#38 (0.00s) --- PASS: TestConvert/#39 (0.00s) --- PASS: TestConvert/#40 (0.00s) --- PASS: TestConvert/#41 (0.01s) --- PASS: TestConvert/#42 (0.00s) --- PASS: TestConvert/#43 (0.00s) --- PASS: TestConvert/#44 (0.00s) --- PASS: TestConvert/#45 (0.00s) --- PASS: TestConvert/#46 (0.00s) --- PASS: TestConvert/#47 (0.00s) --- PASS: TestConvert/#48 (0.00s) --- PASS: TestConvert/#49 (0.00s) === RUN TestX go_test.go:251: --- SKIP: TestX (0.00s) === RUN TestConvertType === RUN TestConvertType/#00 === RUN TestConvertType/#01 === RUN TestConvertType/#02 === RUN TestConvertType/#03 === RUN TestConvertType/#04 === RUN TestConvertType/#05 === RUN TestConvertType/#06 === RUN TestConvertType/#07 === RUN TestConvertType/#08 === RUN TestConvertType/#09 === RUN TestConvertType/#10 === RUN TestConvertType/#11 === RUN TestConvertType/#12 --- PASS: TestConvertType (0.03s) --- PASS: TestConvertType/#00 (0.01s) --- PASS: TestConvertType/#01 (0.00s) --- PASS: TestConvertType/#02 (0.00s) --- PASS: TestConvertType/#03 (0.00s) --- PASS: TestConvertType/#04 (0.00s) --- PASS: TestConvertType/#05 (0.00s) --- PASS: TestConvertType/#06 (0.00s) --- PASS: TestConvertType/#07 (0.00s) --- PASS: TestConvertType/#08 (0.00s) --- PASS: TestConvertType/#09 (0.00s) --- PASS: TestConvertType/#10 (0.00s) --- PASS: TestConvertType/#11 (0.00s) --- PASS: TestConvertType/#12 (0.00s) PASS ok cuelang.org/go/internal/core/convert 0.448s ? cuelang.org/go/internal/core/debug [no test files] === RUN TestVisit === RUN TestVisit/alias === RUN TestVisit/alias/field === RUN TestVisit/alias/all === RUN TestVisit/alias/dynamic === RUN TestVisit/call === RUN TestVisit/call/field === RUN TestVisit/call/all === RUN TestVisit/call/dynamic === RUN TestVisit/composed === RUN TestVisit/composed/field === RUN TestVisit/composed/all === RUN TestVisit/composed/dynamic === RUN TestVisit/dynamic === RUN TestVisit/dynamic/field === RUN TestVisit/dynamic/all === RUN TestVisit/dynamic/dynamic === RUN TestVisit/expr === RUN TestVisit/expr/field === RUN TestVisit/expr/all === RUN TestVisit/expr/dynamic === RUN TestVisit/field === RUN TestVisit/field/field === RUN TestVisit/field/all === RUN TestVisit/field/dynamic === RUN TestVisit/incomplete === RUN TestVisit/incomplete/field === RUN TestVisit/incomplete/all === RUN TestVisit/incomplete/dynamic === RUN TestVisit/list === RUN TestVisit/list/field === RUN TestVisit/list/all === RUN TestVisit/list/dynamic === RUN TestVisit/listcomprehension === RUN TestVisit/listcomprehension/field === RUN TestVisit/listcomprehension/all === RUN TestVisit/listcomprehension/dynamic === RUN TestVisit/self === RUN TestVisit/self/field === RUN TestVisit/self/all === RUN TestVisit/self/dynamic === RUN TestVisit/structcomprehension === RUN TestVisit/structcomprehension/field === RUN TestVisit/structcomprehension/all === RUN TestVisit/structcomprehension/dynamic --- PASS: TestVisit (0.16s) --- PASS: TestVisit/alias (0.04s) --- PASS: TestVisit/alias/field (0.00s) --- PASS: TestVisit/alias/all (0.00s) --- PASS: TestVisit/alias/dynamic (0.00s) --- PASS: TestVisit/call (0.02s) --- PASS: TestVisit/call/field (0.00s) --- PASS: TestVisit/call/all (0.00s) --- PASS: TestVisit/call/dynamic (0.00s) --- PASS: TestVisit/composed (0.01s) --- PASS: TestVisit/composed/field (0.00s) --- PASS: TestVisit/composed/all (0.00s) --- PASS: TestVisit/composed/dynamic (0.00s) --- PASS: TestVisit/dynamic (0.02s) --- PASS: TestVisit/dynamic/field (0.00s) --- PASS: TestVisit/dynamic/all (0.00s) --- PASS: TestVisit/dynamic/dynamic (0.00s) --- PASS: TestVisit/expr (0.01s) --- PASS: TestVisit/expr/field (0.00s) --- PASS: TestVisit/expr/all (0.00s) --- PASS: TestVisit/expr/dynamic (0.00s) --- PASS: TestVisit/field (0.01s) --- PASS: TestVisit/field/field (0.00s) --- PASS: TestVisit/field/all (0.00s) --- PASS: TestVisit/field/dynamic (0.00s) --- PASS: TestVisit/incomplete (0.03s) --- PASS: TestVisit/incomplete/field (0.00s) --- PASS: TestVisit/incomplete/all (0.02s) --- PASS: TestVisit/incomplete/dynamic (0.00s) --- PASS: TestVisit/list (0.00s) --- PASS: TestVisit/list/field (0.00s) --- PASS: TestVisit/list/all (0.00s) --- PASS: TestVisit/list/dynamic (0.00s) --- PASS: TestVisit/listcomprehension (0.00s) --- PASS: TestVisit/listcomprehension/field (0.00s) --- PASS: TestVisit/listcomprehension/all (0.00s) --- PASS: TestVisit/listcomprehension/dynamic (0.00s) --- PASS: TestVisit/self (0.00s) --- PASS: TestVisit/self/field (0.00s) --- PASS: TestVisit/self/all (0.00s) --- PASS: TestVisit/self/dynamic (0.00s) --- PASS: TestVisit/structcomprehension (0.01s) --- PASS: TestVisit/structcomprehension/field (0.00s) --- PASS: TestVisit/structcomprehension/all (0.00s) --- PASS: TestVisit/structcomprehension/dynamic (0.00s) === RUN TestX dep_test.go:94: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/internal/core/dep 0.500s ? cuelang.org/go/internal/core/eval [no test files] === RUN TestSortArcs === RUN TestSortArcs/empty === RUN TestSortArcs/multiple_empty === RUN TestSortArcs/single_list === RUN TestSortArcs/several_one-elem_lists === RUN TestSortArcs/glue1 === RUN TestSortArcs/glue2 === RUN TestSortArcs/interleaved,_prefer_first === RUN TestSortArcs/subsumed === RUN TestSortArcs/cycle,_single_list === RUN TestSortArcs/cycle,_across_lists --- PASS: TestSortArcs (0.01s) --- PASS: TestSortArcs/empty (0.00s) --- PASS: TestSortArcs/multiple_empty (0.00s) --- PASS: TestSortArcs/single_list (0.00s) --- PASS: TestSortArcs/several_one-elem_lists (0.00s) --- PASS: TestSortArcs/glue1 (0.00s) --- PASS: TestSortArcs/glue2 (0.00s) --- PASS: TestSortArcs/interleaved,_prefer_first (0.00s) --- PASS: TestSortArcs/subsumed (0.00s) --- PASS: TestSortArcs/cycle,_single_list (0.00s) --- PASS: TestSortArcs/cycle,_across_lists (0.00s) === RUN TestDefinition === RUN TestDefinition/adt === RUN TestDefinition/alias === RUN TestDefinition/attrs === RUN TestDefinition/def === RUN TestDefinition/disjunction === RUN TestDefinition/docs === RUN TestDefinition/embedscalar === RUN TestDefinition/hidden === RUN TestDefinition/issue662 === RUN TestDefinition/labels === RUN TestDefinition/let === RUN TestDefinition/merge === RUN TestDefinition/num === RUN TestDefinition/scalardef === RUN TestDefinition/simplify === RUN TestDefinition/strings === RUN TestDefinition/topo --- PASS: TestDefinition (2.14s) --- PASS: TestDefinition/adt (0.11s) --- PASS: TestDefinition/alias (0.01s) --- PASS: TestDefinition/attrs (0.04s) --- PASS: TestDefinition/def (0.01s) --- PASS: TestDefinition/disjunction (0.00s) --- PASS: TestDefinition/docs (0.09s) --- PASS: TestDefinition/embedscalar (0.00s) --- PASS: TestDefinition/hidden (0.92s) --- PASS: TestDefinition/issue662 (0.00s) --- PASS: TestDefinition/labels (0.00s) --- PASS: TestDefinition/let (0.01s) --- PASS: TestDefinition/merge (0.01s) --- PASS: TestDefinition/num (0.00s) --- PASS: TestDefinition/scalardef (0.91s) --- PASS: TestDefinition/simplify (0.00s) --- PASS: TestDefinition/strings (0.00s) --- PASS: TestDefinition/topo (0.00s) === RUN TestGenerated === RUN TestGenerated/#00 === RUN TestGenerated/#01 === RUN TestGenerated/#02 === RUN TestGenerated/#03 === RUN TestGenerated/#04 === RUN TestGenerated/#05 === RUN TestGenerated/#06 === RUN TestGenerated/#07 === RUN TestGenerated/#08 --- PASS: TestGenerated (0.02s) --- PASS: TestGenerated/#00 (0.00s) --- PASS: TestGenerated/#01 (0.00s) --- PASS: TestGenerated/#02 (0.00s) --- PASS: TestGenerated/#03 (0.00s) --- PASS: TestGenerated/#04 (0.00s) --- PASS: TestGenerated/#05 (0.00s) --- PASS: TestGenerated/#06 (0.00s) --- PASS: TestGenerated/#07 (0.00s) --- PASS: TestGenerated/#08 (0.00s) === RUN TestX export_test.go:254: --- SKIP: TestX (0.00s) === RUN TestFromGo --- PASS: TestFromGo (0.00s) === RUN TestExtract === RUN TestExtract/adt === RUN TestExtract/alias === RUN TestExtract/attrs === RUN TestExtract/def === RUN TestExtract/disjunction === RUN TestExtract/docs === RUN TestExtract/embedscalar === RUN TestExtract/hidden === RUN TestExtract/issue662 === RUN TestExtract/labels === RUN TestExtract/let === RUN TestExtract/merge === RUN TestExtract/num === RUN TestExtract/scalardef === RUN TestExtract/simplify === RUN TestExtract/strings === RUN TestExtract/topo --- PASS: TestExtract (1.77s) --- PASS: TestExtract/adt (0.01s) --- PASS: TestExtract/alias (0.00s) --- PASS: TestExtract/attrs (0.01s) --- PASS: TestExtract/def (0.00s) --- PASS: TestExtract/disjunction (0.00s) --- PASS: TestExtract/docs (0.04s) --- PASS: TestExtract/embedscalar (0.00s) --- PASS: TestExtract/hidden (0.82s) --- PASS: TestExtract/issue662 (0.00s) --- PASS: TestExtract/labels (0.00s) --- PASS: TestExtract/let (0.00s) --- PASS: TestExtract/merge (0.00s) --- PASS: TestExtract/num (0.00s) --- PASS: TestExtract/scalardef (0.85s) --- PASS: TestExtract/simplify (0.00s) --- PASS: TestExtract/strings (0.00s) --- PASS: TestExtract/topo (0.00s) === RUN TestValue === RUN TestValue/adt === RUN TestValue/alias === RUN TestValue/attrs === RUN TestValue/def === RUN TestValue/disjunction === RUN TestValue/docs === RUN TestValue/embedscalar === RUN TestValue/hidden === RUN TestValue/issue662 === RUN TestValue/labels === RUN TestValue/let === RUN TestValue/merge === RUN TestValue/num === RUN TestValue/scalardef txtar.go:284: incomplete === RUN TestValue/simplify === RUN TestValue/strings === RUN TestValue/topo --- PASS: TestValue (1.00s) --- PASS: TestValue/adt (0.01s) --- PASS: TestValue/alias (0.02s) --- PASS: TestValue/attrs (0.01s) --- PASS: TestValue/def (0.00s) --- PASS: TestValue/disjunction (0.00s) --- PASS: TestValue/docs (0.05s) --- PASS: TestValue/embedscalar (0.01s) --- PASS: TestValue/hidden (0.86s) --- PASS: TestValue/issue662 (0.00s) --- PASS: TestValue/labels (0.00s) --- PASS: TestValue/let (0.01s) --- PASS: TestValue/merge (0.01s) --- PASS: TestValue/num (0.01s) --- SKIP: TestValue/scalardef (0.00s) --- PASS: TestValue/simplify (0.00s) --- PASS: TestValue/strings (0.00s) --- PASS: TestValue/topo (0.00s) === RUN TestValueX value_test.go:91: --- SKIP: TestValueX (0.00s) PASS ok cuelang.org/go/internal/core/export 5.300s === RUN TestPartiallyResolved --- PASS: TestPartiallyResolved (0.00s) PASS ok cuelang.org/go/internal/core/runtime 0.310s === RUN TestStructural structural_test.go:32: --- SKIP: TestStructural (0.00s) === RUN TestX subsume_test.go:29: --- SKIP: TestX (0.00s) === RUN TestValues === RUN TestValues/0/__⊑__ === RUN TestValues/1/__⊑_null === RUN TestValues/2/__⊑_int === RUN TestValues/3/__⊑_1 === RUN TestValues/4/__⊑_float === RUN TestValues/5/__⊑_"s" === RUN TestValues/6/__⊑_{} === RUN TestValues/7/__⊑_[] === RUN TestValues/8/__⊑__|_ === RUN TestValues/9/null_⊑__ === RUN TestValues/10/int_⊑__ === RUN TestValues/11/1_⊑__ === RUN TestValues/12/float_⊑__ === RUN TestValues/13/"s"_⊑__ === RUN TestValues/14/{}_⊑__ === RUN TestValues/15/[]_⊑__ === RUN TestValues/16/_|__⊑__ === RUN TestValues/17/_|__⊑_null === RUN TestValues/18/_|__⊑_int === RUN TestValues/19/_|__⊑_1 === RUN TestValues/20/_|__⊑_float === RUN TestValues/21/_|__⊑_"s" === RUN TestValues/22/_|__⊑_{} === RUN TestValues/23/_|__⊑_[] === RUN TestValues/24/_|__⊑__|_ === RUN TestValues/25/null_⊑__|_ === RUN TestValues/26/int_⊑__|_ === RUN TestValues/27/1_⊑__|_ === RUN TestValues/28/float_⊑__|_ === RUN TestValues/29/"s"_⊑__|_ === RUN TestValues/30/{}_⊑__|_ === RUN TestValues/31/[]_⊑__|_ === RUN TestValues/32/true_⊑__|_ === RUN TestValues/33/_|__⊑__|_ === RUN TestValues/34/null_⊑_null === RUN TestValues/35/null_⊑_1 === RUN TestValues/36/1_⊑_null === RUN TestValues/37/true_⊑_true === RUN TestValues/38/true_⊑_false === RUN TestValues/39/"a"_⊑_"a" === RUN TestValues/40/"a"_⊑_"b" === RUN TestValues/41/string_⊑_"a" === RUN TestValues/42/"a"_⊑_string === RUN TestValues/43/1_⊑_1 === RUN TestValues/44/1.0_⊑_1.0 === RUN TestValues/45/3.0_⊑_3.0 === RUN TestValues/46/1.0_⊑_1 === RUN TestValues/47/1_⊑_1.0 === RUN TestValues/48/3_⊑_3.0 === RUN TestValues/49/int_⊑_1 === RUN TestValues/50/int_⊑_int_&_1 === RUN TestValues/51/float_⊑_1.0 === RUN TestValues/52/float_⊑_1 === RUN TestValues/53/int_⊑_1.0 === RUN TestValues/54/int_⊑_int === RUN TestValues/55/number_⊑_int === RUN TestValues/64/{}_⊑_{} === RUN TestValues/65/{}_⊑_{a:_1} === RUN TestValues/66/{a:1}_⊑_{a:1,_b:1} === RUN TestValues/67/{s:_{_a:1}_}_⊑_{_s:_{_a:1,_b:2_}} === RUN TestValues/68/{}_⊑_{} === RUN TestValues/69/{}_⊑_{}_&_c,_c:_{} === RUN TestValues/70/{a:1}_⊑_{} === RUN TestValues/71/{a:1,_b:1}_⊑_{a:1} === RUN TestValues/72/{s:_{_a:1}_}_⊑_{_s:_{}} === RUN TestValues/84/1_|_2_⊑_2_|_1 === RUN TestValues/85/1_|_2_⊑_1_|_2 === RUN TestValues/86/number_⊑_2_|_1 === RUN TestValues/87/number_⊑_2_|_1 === RUN TestValues/88/int_⊑_1_|_2_|_3.1 === RUN TestValues/89/float_|_number_⊑_1_|_2_|_3.1 === RUN TestValues/90/int_⊑_1_|_2_|_3.1 === RUN TestValues/91/1_|_2_⊑_1 === RUN TestValues/92/1_|_2_⊑_2 === RUN TestValues/93/1_|_2_⊑_3 === RUN TestValues/150/number_|_*1_⊑_number_|_*2 === RUN TestValues/151/number_|_*2_⊑_number_|_*2 === RUN TestValues/152/int_|_*float_⊑_int_|_*2.0 === RUN TestValues/153/int_|_*2_⊑_int_|_*2.0 === RUN TestValues/154/number_|_*2_|_*3_⊑_number_|_*2 === RUN TestValues/155/number_⊑_number_|_*2 === RUN TestValues/170/>=2_⊑_>=2 === RUN TestValues/171/>=1_⊑_>=2 === RUN TestValues/172/>0_⊑_>=2 === RUN TestValues/173/>1_⊑_>1 === RUN TestValues/174/>=1_⊑_>1 === RUN TestValues/175/>1_⊑_>=1 === RUN TestValues/176/>=1_⊑_>=1 === RUN TestValues/177/<1_⊑_<1 === RUN TestValues/178/<=1_⊑_<1 === RUN TestValues/179/<1_⊑_<=1 === RUN TestValues/180/<=1_⊑_<=1 === RUN TestValues/181/!=1_⊑_!=1 === RUN TestValues/182/!=1_⊑_!=2 === RUN TestValues/183/!=1_⊑_<=1 === RUN TestValues/184/!=1_⊑_<1 === RUN TestValues/185/!=1_⊑_>=1 === RUN TestValues/186/!=1_⊑_<1 === RUN TestValues/187/!=1_⊑_<=0 === RUN TestValues/188/!=1_⊑_>=2 === RUN TestValues/189/!=1_⊑_>1 === RUN TestValues/195/>=2_⊑_!=2 === RUN TestValues/196/>2_⊑_!=2 === RUN TestValues/197/<2_⊑_!=2 === RUN TestValues/198/<=2_⊑_!=2 === RUN TestValues/200/=~"foo"_⊑_=~"foo" === RUN TestValues/201/=~"foo"_⊑_=~"bar" === RUN TestValues/202/=~"foo1"_⊑_=~"foo" === RUN TestValues/203/!~"foo"_⊑_!~"foo" === RUN TestValues/204/!~"foo"_⊑_!~"bar" === RUN TestValues/205/!~"foo"_⊑_!~"foo1" === RUN TestValues/210/=~"foo"_⊑_=~"foo1" === RUN TestValues/211/!~"foo1"_⊑_!~"foo" === RUN TestValues/220/<5_⊑_4 === RUN TestValues/221/<5_⊑_5 === RUN TestValues/222/<=5_⊑_5 === RUN TestValues/223/<=5.0_⊑_5.00000001 === RUN TestValues/224/>5_⊑_6 === RUN TestValues/225/>5_⊑_5 === RUN TestValues/226/>=5_⊑_5 === RUN TestValues/227/>=5_⊑_4 === RUN TestValues/228/!=5_⊑_6 === RUN TestValues/229/!=5_⊑_5 === RUN TestValues/230/!=5.0_⊑_5.0 === RUN TestValues/231/!=5.0_⊑_5 === RUN TestValues/250/=~_#"^\d{3}$"#_⊑_"123" === RUN TestValues/251/=~_#"^\d{3}$"#_⊑_"1234" === RUN TestValues/252/!~_#"^\d{3}$"#_⊑_"1234" === RUN TestValues/253/!~_#"^\d{3}$"#_⊑_"123" === RUN TestValues/300/>0_⊑_>=2_&_<=100 === RUN TestValues/301/>0_⊑_>=0_&_<=100 === RUN TestValues/310/>=0_&_<=100_⊑_10 === RUN TestValues/311/>=0_&_<=100_⊑_>=0_&_<=100 === RUN TestValues/312/!=2_&_!=4_⊑_>3 === RUN TestValues/313/!=2_&_!=4_⊑_>5 === RUN TestValues/314/>=0_&_<=100_⊑_>=0_&_<=150 === RUN TestValues/315/>=0_&_<=150_⊑_>=0_&_<=100 === RUN TestValues/330/>5_⊑_>10_|_8 === RUN TestValues/331/>8_⊑_>10_|_8 === RUN TestValues/400/{foo:_1}_⊑_{} === RUN TestValues/401/{foo?:_1}_⊑_{} === RUN TestValues/402/{}_⊑_{foo:_1} === RUN TestValues/403/{}_⊑_{foo?:_1} === RUN TestValues/404/{foo:_1}_⊑_{foo:_1} === RUN TestValues/405/{foo?:_1}_⊑_{foo:_1} === RUN TestValues/406/{foo?:_1}_⊑_{foo?:_1} === RUN TestValues/407/{foo:_1}_⊑_{foo?:_1} === RUN TestValues/408/{foo:_1}_⊑_{foo:_2} === RUN TestValues/409/{foo?:_1}_⊑_{foo:_2} === RUN TestValues/410/{foo?:_1}_⊑_{foo?:_2} === RUN TestValues/411/{foo:_1}_⊑_{foo?:_2} === RUN TestValues/412/{foo:_number}_⊑_{foo:_2} === RUN TestValues/413/{foo?:_number}_⊑_{foo:_2} === RUN TestValues/414/{foo?:_number}_⊑_{foo?:_2} === RUN TestValues/415/{foo:_number}_⊑_{foo?:_2} === RUN TestValues/416/{foo:_1}_⊑_{foo:_number} === RUN TestValues/417/{foo?:_1}_⊑_{foo:_number} === RUN TestValues/418/{foo?:_1}_⊑_{foo?:_number} === RUN TestValues/419/{foo:_1}_⊑_{foo?:_number} === RUN TestValues/420/{foo?:__}_⊑_{} === RUN TestValues/430/{[_]:_4}_⊑_{[_]:_int} === RUN TestValues/431/{[_]:_int}_⊑_{[_]:_2} === RUN TestValues/460/{1,_#foo:_number}_⊑_{1,_#foo:_1} === RUN TestValues/461/{1,_#foo?:_number}_⊑_{1,_#foo:_1} === RUN TestValues/462/{1,_#foo?:_number}_⊑_{1,_#foo?:_1} === RUN TestValues/463/{1,_#foo:_number}_⊑_{1,_#foo?:_1} === RUN TestValues/464/{int,_#foo:_number}_⊑_{1,_#foo:_1} === RUN TestValues/465/{int,_#foo:_1}_⊑_{1,_#foo:_number} === RUN TestValues/466/{1,_#foo:_number}_⊑_{int,_#foo:_1} === RUN TestValues/467/{1,_#foo:_1}_⊑_{int,_#foo:_number} === RUN TestValues/506/[]_⊑_[] === RUN TestValues/507/[1]_⊑_[1] === RUN TestValues/508/[1]_⊑_[2] === RUN TestValues/509/[1]_⊑_[2,_3] === RUN TestValues/510/[{b:_string}],_b:_[{_⊑_"foo"}] === RUN TestValues/511/[...{b:_string}],_b:_[{_⊑_"foo"}] === RUN TestValues/512/[{b:_"foo"}],_b:_[{_⊑_string}] === RUN TestValues/513/[{b:_string}],_b:_[{b:_"foo"},_...{_⊑_"foo"}] === RUN TestValues/520/[_,_int,_...]_⊑_[int,_string,_...string] === RUN TestValues/600/close({})_⊑_{a:_1} === RUN TestValues/601/close({a:_1})_⊑_{a:_1} === RUN TestValues/602/close({a:_1,_b:_1})_⊑_{a:_1} === RUN TestValues/603/{a:_1}_⊑_close({}) === RUN TestValues/604/{a:_1}_⊑_close({a:_1}) === RUN TestValues/605/{a:_1},_b:_close({a:_1_⊑_1}) === RUN TestValues/606/close({b?:_1}),_b:_close({_⊑_1}) === RUN TestValues/607/close({b:_1})_⊑_close({b?:_1}) === RUN TestValues/608/{}_⊑_close({}) === RUN TestValues/609/{}_⊑_close({foo?:_1}) === RUN TestValues/610/{foo?:1}_⊑_close({}) === RUN TestValues/611/close({foo?:1})_⊑_close({bar?:_1}) === RUN TestValues/612/{foo?:1}_⊑_close({bar?:_1}) === RUN TestValues/613/{foo?:1}_⊑_close({bar:_1}) === RUN TestValues/630/{#a:_1}_⊑_{a:_1} === RUN TestValues/631/{a:_1}_⊑_{#a:_1} === RUN TestValues/700/[string]:_1_⊑_{foo:_1} === RUN TestValues/701/[string]:_int_⊑_{foo:_1} === RUN TestValues/702/{["foo"]:_int}_⊑_{foo:_1} === RUN TestValues/703/close({["foo"]:_1})_⊑_{bar:_1} === RUN TestValues/704/{foo:_1}_⊑_{foo?:_1} === RUN TestValues/705/close({})_⊑_{foo?:_1} === RUN TestValues/706/close({})_⊑_close({foo?:_1}) === RUN TestValues/707/{}_⊑_close({}) === RUN TestValues/708/{[string]:_1}_⊑_{foo:_2} === RUN TestValues/709/{}_⊑_close({foo?:_1}) === RUN TestValues/710/{foo:_[...string]}_⊑_{} === RUN TestValues/800/close({})_⊑_{foo:_1} === RUN TestValues/804/{foo:_1}_⊑_{foo?:_1} === RUN TestValues/805/close({})_⊑_{foo?:_1} === RUN TestValues/806/close({})_⊑_close({foo?:_1}) === RUN TestValues/807/{}_⊑_close({}) === RUN TestValues/808/{[string]:_1}_⊑_{foo:_2} === RUN TestValues/809/{}_⊑_close({foo?:_1}) === RUN TestValues/950/[]_⊑_[] === RUN TestValues/951/[...]_⊑_[] === RUN TestValues/952/[...]_⊑_[...] === RUN TestValues/953/[]_⊑_[...] === RUN TestValues/954/[2]_⊑_[2] === RUN TestValues/955/[int]_⊑_[2] === RUN TestValues/956/[2]_⊑_[int] === RUN TestValues/957/[int]_⊑_[int] === RUN TestValues/958/[...2]_⊑_[2] === RUN TestValues/959/[...int]_⊑_[2] === RUN TestValues/960/[...2]_⊑_[int] === RUN TestValues/961/[...int]_⊑_[int] === RUN TestValues/962/[2]_⊑_[...2] === RUN TestValues/963/[int]_⊑_[...2] === RUN TestValues/964/[2]_⊑_[...int] === RUN TestValues/965/[int]_⊑_[...int] === RUN TestValues/966/[...int]_⊑_["foo"] === RUN TestValues/967/["foo"]_⊑_[...int] === RUN TestValues/970/[]_⊑_[...int] === RUN TestValues/971/[2]_⊑_[2,_...int] === RUN TestValues/980/[]_⊑_[...int] === RUN TestValues/981/[2]_⊑_[2,_...int] --- PASS: TestValues (0.32s) --- PASS: TestValues/0/__⊑__ (0.03s) --- PASS: TestValues/1/__⊑_null (0.00s) --- PASS: TestValues/2/__⊑_int (0.00s) --- PASS: TestValues/3/__⊑_1 (0.00s) --- PASS: TestValues/4/__⊑_float (0.00s) --- PASS: TestValues/5/__⊑_"s" (0.00s) --- PASS: TestValues/6/__⊑_{} (0.00s) --- PASS: TestValues/7/__⊑_[] (0.00s) --- PASS: TestValues/8/__⊑__|_ (0.00s) --- PASS: TestValues/9/null_⊑__ (0.00s) --- PASS: TestValues/10/int_⊑__ (0.00s) --- PASS: TestValues/11/1_⊑__ (0.00s) --- PASS: TestValues/12/float_⊑__ (0.00s) --- PASS: TestValues/13/"s"_⊑__ (0.00s) --- PASS: TestValues/14/{}_⊑__ (0.00s) --- PASS: TestValues/15/[]_⊑__ (0.00s) --- PASS: TestValues/16/_|__⊑__ (0.00s) --- PASS: TestValues/17/_|__⊑_null (0.00s) --- PASS: TestValues/18/_|__⊑_int (0.00s) --- PASS: TestValues/19/_|__⊑_1 (0.00s) --- PASS: TestValues/20/_|__⊑_float (0.00s) --- PASS: TestValues/21/_|__⊑_"s" (0.00s) --- PASS: TestValues/22/_|__⊑_{} (0.00s) --- PASS: TestValues/23/_|__⊑_[] (0.00s) --- PASS: TestValues/24/_|__⊑__|_ (0.00s) --- PASS: TestValues/25/null_⊑__|_ (0.00s) --- PASS: TestValues/26/int_⊑__|_ (0.00s) --- PASS: TestValues/27/1_⊑__|_ (0.00s) --- PASS: TestValues/28/float_⊑__|_ (0.00s) --- PASS: TestValues/29/"s"_⊑__|_ (0.00s) --- PASS: TestValues/30/{}_⊑__|_ (0.00s) --- PASS: TestValues/31/[]_⊑__|_ (0.00s) --- PASS: TestValues/32/true_⊑__|_ (0.00s) --- PASS: TestValues/33/_|__⊑__|_ (0.00s) --- PASS: TestValues/34/null_⊑_null (0.00s) --- PASS: TestValues/35/null_⊑_1 (0.00s) --- PASS: TestValues/36/1_⊑_null (0.00s) --- PASS: TestValues/37/true_⊑_true (0.00s) --- PASS: TestValues/38/true_⊑_false (0.00s) --- PASS: TestValues/39/"a"_⊑_"a" (0.00s) --- PASS: TestValues/40/"a"_⊑_"b" (0.00s) --- PASS: TestValues/41/string_⊑_"a" (0.00s) --- PASS: TestValues/42/"a"_⊑_string (0.00s) --- PASS: TestValues/43/1_⊑_1 (0.00s) --- PASS: TestValues/44/1.0_⊑_1.0 (0.00s) --- PASS: TestValues/45/3.0_⊑_3.0 (0.00s) --- PASS: TestValues/46/1.0_⊑_1 (0.00s) --- PASS: TestValues/47/1_⊑_1.0 (0.00s) --- PASS: TestValues/48/3_⊑_3.0 (0.00s) --- PASS: TestValues/49/int_⊑_1 (0.00s) --- PASS: TestValues/50/int_⊑_int_&_1 (0.00s) --- PASS: TestValues/51/float_⊑_1.0 (0.00s) --- PASS: TestValues/52/float_⊑_1 (0.00s) --- PASS: TestValues/53/int_⊑_1.0 (0.00s) --- PASS: TestValues/54/int_⊑_int (0.00s) --- PASS: TestValues/55/number_⊑_int (0.00s) --- PASS: TestValues/64/{}_⊑_{} (0.00s) --- PASS: TestValues/65/{}_⊑_{a:_1} (0.00s) --- PASS: TestValues/66/{a:1}_⊑_{a:1,_b:1} (0.00s) --- PASS: TestValues/67/{s:_{_a:1}_}_⊑_{_s:_{_a:1,_b:2_}} (0.00s) --- PASS: TestValues/68/{}_⊑_{} (0.00s) --- PASS: TestValues/69/{}_⊑_{}_&_c,_c:_{} (0.00s) --- PASS: TestValues/70/{a:1}_⊑_{} (0.00s) --- PASS: TestValues/71/{a:1,_b:1}_⊑_{a:1} (0.00s) --- PASS: TestValues/72/{s:_{_a:1}_}_⊑_{_s:_{}} (0.00s) --- PASS: TestValues/84/1_|_2_⊑_2_|_1 (0.00s) --- PASS: TestValues/85/1_|_2_⊑_1_|_2 (0.00s) --- PASS: TestValues/86/number_⊑_2_|_1 (0.00s) --- PASS: TestValues/87/number_⊑_2_|_1 (0.00s) --- PASS: TestValues/88/int_⊑_1_|_2_|_3.1 (0.00s) --- PASS: TestValues/89/float_|_number_⊑_1_|_2_|_3.1 (0.00s) --- PASS: TestValues/90/int_⊑_1_|_2_|_3.1 (0.00s) --- PASS: TestValues/91/1_|_2_⊑_1 (0.00s) --- PASS: TestValues/92/1_|_2_⊑_2 (0.00s) --- PASS: TestValues/93/1_|_2_⊑_3 (0.00s) --- PASS: TestValues/150/number_|_*1_⊑_number_|_*2 (0.00s) --- PASS: TestValues/151/number_|_*2_⊑_number_|_*2 (0.00s) --- PASS: TestValues/152/int_|_*float_⊑_int_|_*2.0 (0.00s) --- PASS: TestValues/153/int_|_*2_⊑_int_|_*2.0 (0.00s) --- PASS: TestValues/154/number_|_*2_|_*3_⊑_number_|_*2 (0.00s) --- PASS: TestValues/155/number_⊑_number_|_*2 (0.00s) --- PASS: TestValues/170/>=2_⊑_>=2 (0.00s) --- PASS: TestValues/171/>=1_⊑_>=2 (0.00s) --- PASS: TestValues/172/>0_⊑_>=2 (0.00s) --- PASS: TestValues/173/>1_⊑_>1 (0.00s) --- PASS: TestValues/174/>=1_⊑_>1 (0.00s) --- PASS: TestValues/175/>1_⊑_>=1 (0.00s) --- PASS: TestValues/176/>=1_⊑_>=1 (0.00s) --- PASS: TestValues/177/<1_⊑_<1 (0.00s) --- PASS: TestValues/178/<=1_⊑_<1 (0.00s) --- PASS: TestValues/179/<1_⊑_<=1 (0.00s) --- PASS: TestValues/180/<=1_⊑_<=1 (0.00s) --- PASS: TestValues/181/!=1_⊑_!=1 (0.00s) --- PASS: TestValues/182/!=1_⊑_!=2 (0.00s) --- PASS: TestValues/183/!=1_⊑_<=1 (0.00s) --- PASS: TestValues/184/!=1_⊑_<1 (0.00s) --- PASS: TestValues/185/!=1_⊑_>=1 (0.00s) --- PASS: TestValues/186/!=1_⊑_<1 (0.00s) --- PASS: TestValues/187/!=1_⊑_<=0 (0.00s) --- PASS: TestValues/188/!=1_⊑_>=2 (0.00s) --- PASS: TestValues/189/!=1_⊑_>1 (0.00s) --- PASS: TestValues/195/>=2_⊑_!=2 (0.00s) --- PASS: TestValues/196/>2_⊑_!=2 (0.00s) --- PASS: TestValues/197/<2_⊑_!=2 (0.00s) --- PASS: TestValues/198/<=2_⊑_!=2 (0.00s) --- PASS: TestValues/200/=~"foo"_⊑_=~"foo" (0.00s) --- PASS: TestValues/201/=~"foo"_⊑_=~"bar" (0.00s) --- PASS: TestValues/202/=~"foo1"_⊑_=~"foo" (0.00s) --- PASS: TestValues/203/!~"foo"_⊑_!~"foo" (0.00s) --- PASS: TestValues/204/!~"foo"_⊑_!~"bar" (0.00s) --- PASS: TestValues/205/!~"foo"_⊑_!~"foo1" (0.00s) --- PASS: TestValues/210/=~"foo"_⊑_=~"foo1" (0.00s) --- PASS: TestValues/211/!~"foo1"_⊑_!~"foo" (0.00s) --- PASS: TestValues/220/<5_⊑_4 (0.00s) --- PASS: TestValues/221/<5_⊑_5 (0.00s) --- PASS: TestValues/222/<=5_⊑_5 (0.00s) --- PASS: TestValues/223/<=5.0_⊑_5.00000001 (0.00s) --- PASS: TestValues/224/>5_⊑_6 (0.00s) --- PASS: TestValues/225/>5_⊑_5 (0.00s) --- PASS: TestValues/226/>=5_⊑_5 (0.00s) --- PASS: TestValues/227/>=5_⊑_4 (0.00s) --- PASS: TestValues/228/!=5_⊑_6 (0.00s) --- PASS: TestValues/229/!=5_⊑_5 (0.00s) --- PASS: TestValues/230/!=5.0_⊑_5.0 (0.00s) --- PASS: TestValues/231/!=5.0_⊑_5 (0.00s) --- PASS: TestValues/250/=~_#"^\d{3}$"#_⊑_"123" (0.00s) --- PASS: TestValues/251/=~_#"^\d{3}$"#_⊑_"1234" (0.00s) --- PASS: TestValues/252/!~_#"^\d{3}$"#_⊑_"1234" (0.00s) --- PASS: TestValues/253/!~_#"^\d{3}$"#_⊑_"123" (0.00s) --- PASS: TestValues/300/>0_⊑_>=2_&_<=100 (0.00s) --- PASS: TestValues/301/>0_⊑_>=0_&_<=100 (0.00s) --- PASS: TestValues/310/>=0_&_<=100_⊑_10 (0.00s) --- PASS: TestValues/311/>=0_&_<=100_⊑_>=0_&_<=100 (0.00s) --- PASS: TestValues/312/!=2_&_!=4_⊑_>3 (0.00s) --- PASS: TestValues/313/!=2_&_!=4_⊑_>5 (0.00s) --- PASS: TestValues/314/>=0_&_<=100_⊑_>=0_&_<=150 (0.00s) --- PASS: TestValues/315/>=0_&_<=150_⊑_>=0_&_<=100 (0.00s) --- PASS: TestValues/330/>5_⊑_>10_|_8 (0.00s) --- PASS: TestValues/331/>8_⊑_>10_|_8 (0.00s) --- PASS: TestValues/400/{foo:_1}_⊑_{} (0.00s) --- PASS: TestValues/401/{foo?:_1}_⊑_{} (0.00s) --- PASS: TestValues/402/{}_⊑_{foo:_1} (0.00s) --- PASS: TestValues/403/{}_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/404/{foo:_1}_⊑_{foo:_1} (0.00s) --- PASS: TestValues/405/{foo?:_1}_⊑_{foo:_1} (0.00s) --- PASS: TestValues/406/{foo?:_1}_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/407/{foo:_1}_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/408/{foo:_1}_⊑_{foo:_2} (0.00s) --- PASS: TestValues/409/{foo?:_1}_⊑_{foo:_2} (0.00s) --- PASS: TestValues/410/{foo?:_1}_⊑_{foo?:_2} (0.00s) --- PASS: TestValues/411/{foo:_1}_⊑_{foo?:_2} (0.00s) --- PASS: TestValues/412/{foo:_number}_⊑_{foo:_2} (0.00s) --- PASS: TestValues/413/{foo?:_number}_⊑_{foo:_2} (0.00s) --- PASS: TestValues/414/{foo?:_number}_⊑_{foo?:_2} (0.00s) --- PASS: TestValues/415/{foo:_number}_⊑_{foo?:_2} (0.00s) --- PASS: TestValues/416/{foo:_1}_⊑_{foo:_number} (0.00s) --- PASS: TestValues/417/{foo?:_1}_⊑_{foo:_number} (0.00s) --- PASS: TestValues/418/{foo?:_1}_⊑_{foo?:_number} (0.00s) --- PASS: TestValues/419/{foo:_1}_⊑_{foo?:_number} (0.00s) --- PASS: TestValues/420/{foo?:__}_⊑_{} (0.00s) --- PASS: TestValues/430/{[_]:_4}_⊑_{[_]:_int} (0.00s) --- PASS: TestValues/431/{[_]:_int}_⊑_{[_]:_2} (0.00s) --- PASS: TestValues/460/{1,_#foo:_number}_⊑_{1,_#foo:_1} (0.00s) --- PASS: TestValues/461/{1,_#foo?:_number}_⊑_{1,_#foo:_1} (0.00s) --- PASS: TestValues/462/{1,_#foo?:_number}_⊑_{1,_#foo?:_1} (0.00s) --- PASS: TestValues/463/{1,_#foo:_number}_⊑_{1,_#foo?:_1} (0.00s) --- PASS: TestValues/464/{int,_#foo:_number}_⊑_{1,_#foo:_1} (0.00s) --- PASS: TestValues/465/{int,_#foo:_1}_⊑_{1,_#foo:_number} (0.00s) --- PASS: TestValues/466/{1,_#foo:_number}_⊑_{int,_#foo:_1} (0.00s) --- PASS: TestValues/467/{1,_#foo:_1}_⊑_{int,_#foo:_number} (0.00s) --- PASS: TestValues/506/[]_⊑_[] (0.00s) --- PASS: TestValues/507/[1]_⊑_[1] (0.00s) --- PASS: TestValues/508/[1]_⊑_[2] (0.00s) --- PASS: TestValues/509/[1]_⊑_[2,_3] (0.00s) --- PASS: TestValues/510/[{b:_string}],_b:_[{_⊑_"foo"}] (0.00s) --- PASS: TestValues/511/[...{b:_string}],_b:_[{_⊑_"foo"}] (0.00s) --- PASS: TestValues/512/[{b:_"foo"}],_b:_[{_⊑_string}] (0.00s) --- PASS: TestValues/513/[{b:_string}],_b:_[{b:_"foo"},_...{_⊑_"foo"}] (0.00s) --- PASS: TestValues/520/[_,_int,_...]_⊑_[int,_string,_...string] (0.00s) --- PASS: TestValues/600/close({})_⊑_{a:_1} (0.00s) --- PASS: TestValues/601/close({a:_1})_⊑_{a:_1} (0.00s) --- PASS: TestValues/602/close({a:_1,_b:_1})_⊑_{a:_1} (0.00s) --- PASS: TestValues/603/{a:_1}_⊑_close({}) (0.00s) --- PASS: TestValues/604/{a:_1}_⊑_close({a:_1}) (0.03s) --- PASS: TestValues/605/{a:_1},_b:_close({a:_1_⊑_1}) (0.01s) --- PASS: TestValues/606/close({b?:_1}),_b:_close({_⊑_1}) (0.00s) --- PASS: TestValues/607/close({b:_1})_⊑_close({b?:_1}) (0.00s) --- PASS: TestValues/608/{}_⊑_close({}) (0.00s) --- PASS: TestValues/609/{}_⊑_close({foo?:_1}) (0.00s) --- PASS: TestValues/610/{foo?:1}_⊑_close({}) (0.00s) --- PASS: TestValues/611/close({foo?:1})_⊑_close({bar?:_1}) (0.00s) --- PASS: TestValues/612/{foo?:1}_⊑_close({bar?:_1}) (0.00s) --- PASS: TestValues/613/{foo?:1}_⊑_close({bar:_1}) (0.00s) --- PASS: TestValues/630/{#a:_1}_⊑_{a:_1} (0.00s) --- PASS: TestValues/631/{a:_1}_⊑_{#a:_1} (0.00s) --- PASS: TestValues/700/[string]:_1_⊑_{foo:_1} (0.00s) --- PASS: TestValues/701/[string]:_int_⊑_{foo:_1} (0.00s) --- PASS: TestValues/702/{["foo"]:_int}_⊑_{foo:_1} (0.00s) --- PASS: TestValues/703/close({["foo"]:_1})_⊑_{bar:_1} (0.00s) --- PASS: TestValues/704/{foo:_1}_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/705/close({})_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/706/close({})_⊑_close({foo?:_1}) (0.00s) --- PASS: TestValues/707/{}_⊑_close({}) (0.00s) --- PASS: TestValues/708/{[string]:_1}_⊑_{foo:_2} (0.00s) --- PASS: TestValues/709/{}_⊑_close({foo?:_1}) (0.00s) --- PASS: TestValues/710/{foo:_[...string]}_⊑_{} (0.00s) --- PASS: TestValues/800/close({})_⊑_{foo:_1} (0.00s) --- PASS: TestValues/804/{foo:_1}_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/805/close({})_⊑_{foo?:_1} (0.00s) --- PASS: TestValues/806/close({})_⊑_close({foo?:_1}) (0.00s) --- PASS: TestValues/807/{}_⊑_close({}) (0.00s) --- PASS: TestValues/808/{[string]:_1}_⊑_{foo:_2} (0.00s) --- PASS: TestValues/809/{}_⊑_close({foo?:_1}) (0.00s) --- PASS: TestValues/950/[]_⊑_[] (0.00s) --- PASS: TestValues/951/[...]_⊑_[] (0.00s) --- PASS: TestValues/952/[...]_⊑_[...] (0.00s) --- PASS: TestValues/953/[]_⊑_[...] (0.00s) --- PASS: TestValues/954/[2]_⊑_[2] (0.00s) --- PASS: TestValues/955/[int]_⊑_[2] (0.00s) --- PASS: TestValues/956/[2]_⊑_[int] (0.00s) --- PASS: TestValues/957/[int]_⊑_[int] (0.00s) --- PASS: TestValues/958/[...2]_⊑_[2] (0.00s) --- PASS: TestValues/959/[...int]_⊑_[2] (0.00s) --- PASS: TestValues/960/[...2]_⊑_[int] (0.00s) --- PASS: TestValues/961/[...int]_⊑_[int] (0.00s) --- PASS: TestValues/962/[2]_⊑_[...2] (0.00s) --- PASS: TestValues/963/[int]_⊑_[...2] (0.00s) --- PASS: TestValues/964/[2]_⊑_[...int] (0.00s) --- PASS: TestValues/965/[int]_⊑_[...int] (0.00s) --- PASS: TestValues/966/[...int]_⊑_["foo"] (0.00s) --- PASS: TestValues/967/["foo"]_⊑_[...int] (0.00s) --- PASS: TestValues/970/[]_⊑_[...int] (0.00s) --- PASS: TestValues/971/[2]_⊑_[2,_...int] (0.00s) --- PASS: TestValues/980/[]_⊑_[...int] (0.00s) --- PASS: TestValues/981/[2]_⊑_[2,_...int] (0.00s) PASS ok cuelang.org/go/internal/core/subsume 0.610s === RUN TestValidate === RUN TestValidate/no_error,_but_not_concrete,_even_with_definition_label === RUN TestValidate/definitions_not_considered_for_completeness === RUN TestValidate/hidden_fields_not_considered_for_completeness === RUN TestValidate/hidden_fields_not_considered_for_completeness#01 === RUN TestValidate/evaluation_error_at_top === RUN TestValidate/evaluation_error_in_field === RUN TestValidate/first_error === RUN TestValidate/all_errors === RUN TestValidate/incomplete === RUN TestValidate/allowed_incomplete_cycle === RUN TestValidate/allowed_incomplete_when_disallowing_cycles === RUN TestValidate/disallow_cycle === RUN TestValidate/disallow_cycle#01 === RUN TestValidate/treat_cycles_as_incomplete_when_not_disallowing === RUN TestValidate/catch_most_serious_error === RUN TestValidate/consider_defaults_for_concreteness === RUN TestValidate/allow_non-concrete_in_definitions_in_concrete_mode === RUN TestValidate/pick_up_non-concrete_value_in_default === RUN TestValidate/pick_up_non-concrete_value_in_default#01 --- PASS: TestValidate (0.06s) --- PASS: TestValidate/no_error,_but_not_concrete,_even_with_definition_label (0.02s) --- PASS: TestValidate/definitions_not_considered_for_completeness (0.00s) --- PASS: TestValidate/hidden_fields_not_considered_for_completeness (0.00s) --- PASS: TestValidate/hidden_fields_not_considered_for_completeness#01 (0.00s) --- PASS: TestValidate/evaluation_error_at_top (0.01s) --- PASS: TestValidate/evaluation_error_in_field (0.00s) --- PASS: TestValidate/first_error (0.00s) --- PASS: TestValidate/all_errors (0.00s) --- PASS: TestValidate/incomplete (0.00s) --- PASS: TestValidate/allowed_incomplete_cycle (0.00s) --- PASS: TestValidate/allowed_incomplete_when_disallowing_cycles (0.00s) --- PASS: TestValidate/disallow_cycle (0.00s) --- PASS: TestValidate/disallow_cycle#01 (0.01s) --- PASS: TestValidate/treat_cycles_as_incomplete_when_not_disallowing (0.00s) --- PASS: TestValidate/catch_most_serious_error (0.00s) --- PASS: TestValidate/consider_defaults_for_concreteness (0.00s) --- PASS: TestValidate/allow_non-concrete_in_definitions_in_concrete_mode (0.00s) --- PASS: TestValidate/pick_up_non-concrete_value_in_default (0.00s) --- PASS: TestValidate/pick_up_non-concrete_value_in_default#01 (0.00s) PASS ok cuelang.org/go/internal/core/validate 0.343s ? cuelang.org/go/internal/core/walk [no test files] === RUN TestCondition === RUN TestCondition/long === RUN TestCondition/bad_condition --- PASS: TestCondition (0.02s) --- PASS: TestCondition/long (0.00s) --- PASS: TestCondition/bad_condition (0.00s) === RUN TestCheckIssueCondition === RUN TestCheckIssueCondition/empty_env === RUN TestCheckIssueCondition/match_all_issues === RUN TestCheckIssueCondition/bad_issue_URL === RUN TestCheckIssueCondition/bad_env --- PASS: TestCheckIssueCondition (0.00s) --- PASS: TestCheckIssueCondition/empty_env (0.00s) --- PASS: TestCheckIssueCondition/match_all_issues (0.00s) --- PASS: TestCheckIssueCondition/bad_issue_URL (0.00s) --- PASS: TestCheckIssueCondition/bad_env (0.00s) PASS ok cuelang.org/go/internal/cuetest 0.284s ? cuelang.org/go/internal/cuetxtar [no test files] === RUN TestDiff === RUN TestDiff/identity_struct === RUN TestDiff/identity_list === RUN TestDiff/identity_value === RUN TestDiff/modified_value === RUN TestDiff/basics === RUN TestDiff/basics_2 === RUN TestDiff/interupted_run_1 === RUN TestDiff/interupted_run_2 === RUN TestDiff/recursion === RUN TestDiff/optional_and_definitions === RUN TestDiff/bulk_optional === RUN TestDiff/#00 === RUN TestDiff/#01 --- PASS: TestDiff (0.10s) --- PASS: TestDiff/identity_struct (0.04s) --- PASS: TestDiff/identity_list (0.00s) --- PASS: TestDiff/identity_value (0.00s) --- PASS: TestDiff/modified_value (0.01s) --- PASS: TestDiff/basics (0.01s) --- PASS: TestDiff/basics_2 (0.01s) --- PASS: TestDiff/interupted_run_1 (0.00s) --- PASS: TestDiff/interupted_run_2 (0.00s) --- PASS: TestDiff/recursion (0.00s) --- PASS: TestDiff/optional_and_definitions (0.00s) --- PASS: TestDiff/bulk_optional (0.01s) --- PASS: TestDiff/#00 (0.01s) --- PASS: TestDiff/#01 (0.00s) === RUN TestX diff_test.go:411: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/internal/diff 0.496s === RUN TestDetect === RUN TestDetect/validOpenAPI === RUN TestDetect/noOpenAPI === RUN TestDetect/noTitle === RUN TestDetect/noVersion === RUN TestDetect/validJSONSchema === RUN TestDetect/validJSONSchema#01 === RUN TestDetect/noSchema === RUN TestDetect/wrongHost === RUN TestDetect/invalidURL === RUN TestDetect/invalidPath --- PASS: TestDetect (0.03s) --- PASS: TestDetect/validOpenAPI (0.01s) --- PASS: TestDetect/noOpenAPI (0.00s) --- PASS: TestDetect/noTitle (0.00s) --- PASS: TestDetect/noVersion (0.00s) --- PASS: TestDetect/validJSONSchema (0.00s) --- PASS: TestDetect/validJSONSchema#01 (0.00s) --- PASS: TestDetect/noSchema (0.00s) --- PASS: TestDetect/wrongHost (0.00s) --- PASS: TestDetect/invalidURL (0.00s) --- PASS: TestDetect/invalidPath (0.00s) === RUN TestValidate === RUN TestValidate/data/___/_Foo___a:_2___"b-b":_3___s:_-2___a:_+2___ === RUN TestValidate/graph/___X=3___a:_X___"b-b":_3___s:_a___ === RUN TestValidate/data/import_"foo"_ === RUN TestValidate/data/a:_a === RUN TestValidate/data/a:_1_+_3 === RUN TestValidate/data/a:_1_+_3#01 === RUN TestValidate/data/a_::_1 === RUN TestValidate/data/a:_<1 === RUN TestValidate/data/a:_!true === RUN TestValidate/data/a:_1_|_2 === RUN TestValidate/data/a:_1_|_*2 === RUN TestValidate/data/X=3,_a:_X === RUN TestValidate/data/2+2 === RUN TestValidate/data/"\(3)" === RUN TestValidate/data/for_x_in_[2]_{_a:_2_} === RUN TestValidate/data/a:_len([]) === RUN TestValidate/data/a:_[...] --- PASS: TestValidate (1.16s) --- PASS: TestValidate/data/___/_Foo___a:_2___"b-b":_3___s:_-2___a:_+2___ (0.20s) --- PASS: TestValidate/graph/___X=3___a:_X___"b-b":_3___s:_a___ (0.05s) --- PASS: TestValidate/data/import_"foo"_ (0.06s) --- PASS: TestValidate/data/a:_a (0.05s) --- PASS: TestValidate/data/a:_1_+_3 (0.06s) --- PASS: TestValidate/data/a:_1_+_3#01 (0.05s) --- PASS: TestValidate/data/a_::_1 (0.06s) --- PASS: TestValidate/data/a:_<1 (0.05s) --- PASS: TestValidate/data/a:_!true (0.06s) --- PASS: TestValidate/data/a:_1_|_2 (0.05s) --- PASS: TestValidate/data/a:_1_|_*2 (0.06s) --- PASS: TestValidate/data/X=3,_a:_X (0.05s) --- PASS: TestValidate/data/2+2 (0.06s) --- PASS: TestValidate/data/"\(3)" (0.06s) --- PASS: TestValidate/data/for_x_in_[2]_{_a:_2_} (0.07s) --- PASS: TestValidate/data/a:_len([]) (0.07s) --- PASS: TestValidate/data/a:_[...] (0.07s) PASS ok cuelang.org/go/internal/encoding 1.534s === RUN TestEncodeFile === RUN TestEncodeFile/foo === RUN TestEncodeFile/oneLineFields === RUN TestEncodeFile/comments === RUN TestEncodeFile/embed === RUN TestEncodeFile/anchors === RUN TestEncodeFile/errors === RUN TestEncodeFile/disallowMultipleEmbeddings === RUN TestEncodeFile/disallowDefinitions === RUN TestEncodeFile/disallowOptionals === RUN TestEncodeFile/disallowBulkOptionals === RUN TestEncodeFile/noImports === RUN TestEncodeFile/disallowMultipleEmbeddings#01 === RUN TestEncodeFile/prometheus --- PASS: TestEncodeFile (0.04s) --- PASS: TestEncodeFile/foo (0.02s) --- PASS: TestEncodeFile/oneLineFields (0.01s) --- PASS: TestEncodeFile/comments (0.00s) --- PASS: TestEncodeFile/embed (0.00s) --- PASS: TestEncodeFile/anchors (0.00s) --- PASS: TestEncodeFile/errors (0.00s) --- PASS: TestEncodeFile/disallowMultipleEmbeddings (0.00s) --- PASS: TestEncodeFile/disallowDefinitions (0.00s) --- PASS: TestEncodeFile/disallowOptionals (0.00s) --- PASS: TestEncodeFile/disallowBulkOptionals (0.00s) --- PASS: TestEncodeFile/noImports (0.00s) --- PASS: TestEncodeFile/disallowMultipleEmbeddings#01 (0.00s) --- PASS: TestEncodeFile/prometheus (0.00s) === RUN TestEncodeAST === RUN TestEncodeAST/#00 === RUN TestEncodeAST/#01 === RUN TestEncodeAST/#02 === RUN TestEncodeAST/#03 === RUN TestEncodeAST/#04 --- PASS: TestEncodeAST (0.01s) --- PASS: TestEncodeAST/#00 (0.00s) --- PASS: TestEncodeAST/#01 (0.00s) --- PASS: TestEncodeAST/#02 (0.00s) --- PASS: TestEncodeAST/#03 (0.00s) --- PASS: TestEncodeAST/#04 (0.00s) PASS ok cuelang.org/go/internal/encoding/json 0.245s === RUN TestEncodeFile === RUN TestEncodeFile/foo === RUN TestEncodeFile/oneLineFields === RUN TestEncodeFile/comments === RUN TestEncodeFile/embed === RUN TestEncodeFile/anchors === RUN TestEncodeFile/errors === RUN TestEncodeFile/disallowMultipleEmbeddings === RUN TestEncodeFile/disallowDefinitions === RUN TestEncodeFile/disallowOptionals === RUN TestEncodeFile/disallowBulkOptionals === RUN TestEncodeFile/noImports === RUN TestEncodeFile/disallowMultipleEmbeddings#01 === RUN TestEncodeFile/prometheus --- PASS: TestEncodeFile (0.06s) --- PASS: TestEncodeFile/foo (0.03s) --- PASS: TestEncodeFile/oneLineFields (0.01s) --- PASS: TestEncodeFile/comments (0.00s) --- PASS: TestEncodeFile/embed (0.00s) --- PASS: TestEncodeFile/anchors (0.00s) --- PASS: TestEncodeFile/errors (0.00s) --- PASS: TestEncodeFile/disallowMultipleEmbeddings (0.00s) --- PASS: TestEncodeFile/disallowDefinitions (0.00s) --- PASS: TestEncodeFile/disallowOptionals (0.00s) --- PASS: TestEncodeFile/disallowBulkOptionals (0.00s) --- PASS: TestEncodeFile/noImports (0.00s) --- PASS: TestEncodeFile/disallowMultipleEmbeddings#01 (0.00s) --- PASS: TestEncodeFile/prometheus (0.00s) === RUN TestEncodeAST === RUN TestEncodeAST/#00 === RUN TestEncodeAST/#01 --- PASS: TestEncodeAST (0.00s) --- PASS: TestEncodeAST/#00 (0.00s) --- PASS: TestEncodeAST/#01 (0.00s) === RUN TestX encode_test.go:329: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/internal/encoding/yaml 0.315s === RUN TestFromFile === RUN TestFromFile/must_specify_encoding === RUN TestFromFile/cue === RUN TestFromFile/yaml === RUN TestFromFile/yaml+openapi === RUN TestFromFile/JSONDefault === RUN TestFromFile/JSONSchema === RUN TestFromFile/JSONOpenAPI === RUN TestFromFile/OpenAPIDefaults === RUN TestFromFile/Go --- PASS: TestFromFile (0.74s) --- PASS: TestFromFile/must_specify_encoding (0.16s) --- PASS: TestFromFile/cue (0.11s) --- PASS: TestFromFile/yaml (0.07s) --- PASS: TestFromFile/yaml+openapi (0.09s) --- PASS: TestFromFile/JSONDefault (0.05s) --- PASS: TestFromFile/JSONSchema (0.06s) --- PASS: TestFromFile/JSONOpenAPI (0.06s) --- PASS: TestFromFile/OpenAPIDefaults (0.05s) --- PASS: TestFromFile/Go (0.09s) === RUN TestParseFile filetypes_test.go:255: fix error messages --- SKIP: TestParseFile (0.01s) === RUN TestParseArgs === RUN TestParseArgs/foo.json_baz.yaml === RUN TestParseArgs/data:_foo.cue === RUN TestParseArgs/json:_foo.json_bar.data_jsonschema:_bar.schema === RUN TestParseArgs/json:_c:\foo.json_c:\path\to\file.dat === RUN TestParseArgs/json:_json+schema:_bar.schema === RUN TestParseArgs/json: === RUN TestParseArgs/json:foo:bar.yaml --- PASS: TestParseArgs (0.36s) --- PASS: TestParseArgs/foo.json_baz.yaml (0.08s) --- PASS: TestParseArgs/data:_foo.cue (0.06s) --- PASS: TestParseArgs/json:_foo.json_bar.data_jsonschema:_bar.schema (0.10s) --- PASS: TestParseArgs/json:_c:\foo.json_c:\path\to\file.dat (0.06s) --- PASS: TestParseArgs/json:_json+schema:_bar.schema (0.06s) --- PASS: TestParseArgs/json: (0.00s) --- PASS: TestParseArgs/json:foo:bar.yaml (0.00s) === RUN TestIsPackage === RUN TestIsPackage/. === RUN TestIsPackage/.. === RUN TestIsPackage/../.../foo === RUN TestIsPackage/.../foo === RUN TestIsPackage/./:foo === RUN TestIsPackage/foo.bar/foo === RUN TestIsPackage/:foo === RUN TestIsPackage/foo.bar === RUN TestIsPackage/foo: === RUN TestIsPackage/foo:bar:baz === RUN TestIsPackage/- === RUN TestIsPackage/-:foo --- PASS: TestIsPackage (0.00s) --- PASS: TestIsPackage/. (0.00s) --- PASS: TestIsPackage/.. (0.00s) --- PASS: TestIsPackage/../.../foo (0.00s) --- PASS: TestIsPackage/.../foo (0.00s) --- PASS: TestIsPackage/./:foo (0.00s) --- PASS: TestIsPackage/foo.bar/foo (0.00s) --- PASS: TestIsPackage/:foo (0.00s) --- PASS: TestIsPackage/foo.bar (0.00s) --- PASS: TestIsPackage/foo: (0.00s) --- PASS: TestIsPackage/foo:bar:baz (0.00s) --- PASS: TestIsPackage/- (0.00s) --- PASS: TestIsPackage/-:foo (0.00s) PASS ok cuelang.org/go/internal/filetypes 1.563s ? cuelang.org/go/internal/source [no test files] ? cuelang.org/go/internal/str [no test files] ? cuelang.org/go/internal/task [no test files] === RUN TestUnmarshal === RUN TestUnmarshal/0 decode_test.go:727: test 0: "" === RUN TestUnmarshal/1 decode_test.go:727: test 1: "{}" === RUN TestUnmarshal/2 decode_test.go:727: test 2: "v: hi" === RUN TestUnmarshal/3 decode_test.go:727: test 3: "v: hi" === RUN TestUnmarshal/4 decode_test.go:727: test 4: "v: true" === RUN TestUnmarshal/5 decode_test.go:727: test 5: "v: 10" === RUN TestUnmarshal/6 decode_test.go:727: test 6: "v: 0b10" === RUN TestUnmarshal/7 decode_test.go:727: test 7: "v: 0xA" === RUN TestUnmarshal/8 decode_test.go:727: test 8: "v: 4294967296" === RUN TestUnmarshal/9 decode_test.go:727: test 9: "v: 0.1" === RUN TestUnmarshal/10 decode_test.go:727: test 10: "v: .1" === RUN TestUnmarshal/11 decode_test.go:727: test 11: "v: .Inf" === RUN TestUnmarshal/12 decode_test.go:727: test 12: "v: -.Inf" === RUN TestUnmarshal/13 decode_test.go:727: test 13: "v: -10" === RUN TestUnmarshal/14 decode_test.go:727: test 14: "v: -.1" === RUN TestUnmarshal/15 decode_test.go:727: test 15: "123" === RUN TestUnmarshal/16 decode_test.go:727: test 16: "canonical: 6.8523e+5" === RUN TestUnmarshal/17 decode_test.go:727: test 17: "expo: 685.230_15e+03" === RUN TestUnmarshal/18 decode_test.go:727: test 18: "fixed: 685_230.15" === RUN TestUnmarshal/19 decode_test.go:727: test 19: "neginf: -.inf" === RUN TestUnmarshal/20 decode_test.go:727: test 20: "fixed: 685_230.15" === RUN TestUnmarshal/21 decode_test.go:727: test 21: "canonical: y" === RUN TestUnmarshal/22 decode_test.go:727: test 22: "answer: n" === RUN TestUnmarshal/23 decode_test.go:727: test 23: "answer: NO" === RUN TestUnmarshal/24 decode_test.go:727: test 24: "logical: True" === RUN TestUnmarshal/25 decode_test.go:727: test 25: "option: on" === RUN TestUnmarshal/26 decode_test.go:727: test 26: "answer: off" === RUN TestUnmarshal/27 decode_test.go:727: test 27: "canonical: 685230" === RUN TestUnmarshal/28 decode_test.go:727: test 28: "decimal: +685_230" === RUN TestUnmarshal/29 decode_test.go:727: test 29: "octal: 02472256" === RUN TestUnmarshal/30 decode_test.go:727: test 30: "hexa: 0x_0A_74_AE" === RUN TestUnmarshal/31 decode_test.go:727: test 31: "bin: 0b1010_0111_0100_1010_1110" === RUN TestUnmarshal/32 decode_test.go:727: test 32: "bin: -0b101010" === RUN TestUnmarshal/33 decode_test.go:727: test 33: "bin: -0b1000000000000000000000000000000000000000000000000000000000000000" === RUN TestUnmarshal/34 decode_test.go:727: test 34: "decimal: +685_230" === RUN TestUnmarshal/35 decode_test.go:727: test 35: "empty:" === RUN TestUnmarshal/36 decode_test.go:727: test 36: "canonical: ~" === RUN TestUnmarshal/37 decode_test.go:727: test 37: "english: null" === RUN TestUnmarshal/38 decode_test.go:727: test 38: "_foo: 1" === RUN TestUnmarshal/39 decode_test.go:727: test 39: "\"#foo\": 1" === RUN TestUnmarshal/40 decode_test.go:727: test 40: "_#foo: 1" === RUN TestUnmarshal/41 decode_test.go:727: test 41: "~: null key" === RUN TestUnmarshal/42 decode_test.go:727: test 42: "empty:\napple: \"newline\"" === RUN TestUnmarshal/43 decode_test.go:727: test 43: "seq: [A,B]" === RUN TestUnmarshal/44 decode_test.go:727: test 44: "seq: [A,B,C,]" === RUN TestUnmarshal/45 decode_test.go:727: test 45: "seq: [A,1,C]" === RUN TestUnmarshal/46 decode_test.go:727: test 46: "seq:\n - A\n - B" === RUN TestUnmarshal/47 decode_test.go:727: test 47: "seq:\n - A\n - B\n - C" === RUN TestUnmarshal/48 decode_test.go:727: test 48: "seq:\n - A\n - 1\n - C" === RUN TestUnmarshal/49 decode_test.go:727: test 49: "scalar: | # Comment\n\n literal\n\n \ttext\n\n" === RUN TestUnmarshal/50 decode_test.go:727: test 50: "scalar: > # Comment\n\n folded\n line\n \n next\n line\n * one\n * two\n\n last\n line\n\n" === RUN TestUnmarshal/51 decode_test.go:727: test 51: "a: {b: c}" === RUN TestUnmarshal/52 decode_test.go:727: test 52: "hello: world" === RUN TestUnmarshal/53 decode_test.go:727: test 53: "a:" === RUN TestUnmarshal/54 decode_test.go:727: test 54: "a: 1" === RUN TestUnmarshal/55 decode_test.go:727: test 55: "a: 1.0" === RUN TestUnmarshal/56 decode_test.go:727: test 56: "a: [1, 2]" === RUN TestUnmarshal/57 decode_test.go:727: test 57: "a: y" === RUN TestUnmarshal/58 decode_test.go:727: test 58: "{ a: 1, b: {c: 1} }" === RUN TestUnmarshal/59 decode_test.go:727: test 59: "v: 42" === RUN TestUnmarshal/60 decode_test.go:727: test 60: "v: -42" === RUN TestUnmarshal/61 decode_test.go:727: test 61: "v: 4294967296" === RUN TestUnmarshal/62 decode_test.go:727: test 62: "v: -4294967296" === RUN TestUnmarshal/63 decode_test.go:727: test 63: "int_max: 2147483647" === RUN TestUnmarshal/64 decode_test.go:727: test 64: "int_min: -2147483648" === RUN TestUnmarshal/65 decode_test.go:727: test 65: "int_overflow: 9223372036854775808" === RUN TestUnmarshal/66 decode_test.go:727: test 66: "int64_max: 9223372036854775807" === RUN TestUnmarshal/67 decode_test.go:727: test 67: "int64_max_base2: 0b111111111111111111111111111111111111111111111111111111111111111" === RUN TestUnmarshal/68 decode_test.go:727: test 68: "int64_min: -9223372036854775808" === RUN TestUnmarshal/69 decode_test.go:727: test 69: "int64_neg_base2: -0b111111111111111111111111111111111111111111111111111111111111111" === RUN TestUnmarshal/70 decode_test.go:727: test 70: "int64_overflow: 9223372036854775808" === RUN TestUnmarshal/71 decode_test.go:727: test 71: "uint_max: 4294967295" === RUN TestUnmarshal/72 decode_test.go:727: test 72: "uint64_max: 18446744073709551615" === RUN TestUnmarshal/73 decode_test.go:727: test 73: "uint64_max_base2: 0b1111111111111111111111111111111111111111111111111111111111111111" === RUN TestUnmarshal/74 decode_test.go:727: test 74: "uint64_maxint64: 9223372036854775807" === RUN TestUnmarshal/75 decode_test.go:727: test 75: "float32_max: 3.40282346638528859811704183484516925440e+38" === RUN TestUnmarshal/76 decode_test.go:727: test 76: "float32_nonzero: 1.401298464324817070923729583289916131280e-45" === RUN TestUnmarshal/77 decode_test.go:727: test 77: "float32_maxuint64: 18446744073709551615" === RUN TestUnmarshal/78 decode_test.go:727: test 78: "float32_maxuint64+1: 18446744073709551616" === RUN TestUnmarshal/79 decode_test.go:727: test 79: "float64_max: 1.797693134862315708145274237317043567981e+308" === RUN TestUnmarshal/80 decode_test.go:727: test 80: "float64_nonzero: 4.940656458412465441765687928682213723651e-324" === RUN TestUnmarshal/81 decode_test.go:727: test 81: "float64_maxuint64: 18446744073709551615" === RUN TestUnmarshal/82 decode_test.go:727: test 82: "float64_maxuint64+1: 18446744073709551616" === RUN TestUnmarshal/83 decode_test.go:727: test 83: "v: 4294967297" === RUN TestUnmarshal/84 decode_test.go:727: test 84: "v: 128" === RUN TestUnmarshal/85 decode_test.go:727: test 85: "'1': '\"2\"'" === RUN TestUnmarshal/86 decode_test.go:727: test 86: "v:\n- A\n- 'B\n\n C'\n" === RUN TestUnmarshal/87 decode_test.go:727: test 87: "\"\\0\"" === RUN TestUnmarshal/88 decode_test.go:727: test 88: "v: !!float '1.1'" === RUN TestUnmarshal/89 decode_test.go:727: test 89: "v: !!float 0" === RUN TestUnmarshal/90 decode_test.go:727: test 90: "v: !!float -1" === RUN TestUnmarshal/91 decode_test.go:727: test 91: "v: !!null ''" === RUN TestUnmarshal/92 decode_test.go:727: test 92: "%TAG !y! tag:yaml.org,2002:\n---\nv: !y!int '1'" === RUN TestUnmarshal/93 decode_test.go:727: test 93: "v: ! test" === RUN TestUnmarshal/94 decode_test.go:727: test 94: "a: &x 1\nb: &y 2\nc: *x\nd: *y\n" === RUN TestUnmarshal/95 decode_test.go:727: test 95: "a: &a {c: 1}\nb: *a" === RUN TestUnmarshal/96 decode_test.go:727: test 96: "a: &a [1, 2]\nb: *a" === RUN TestUnmarshal/97 decode_test.go:727: test 97: "foo: ''" === RUN TestUnmarshal/98 decode_test.go:727: test 98: "foo: null" === RUN TestUnmarshal/99 decode_test.go:727: test 99: "foo: ~" === RUN TestUnmarshal/100 decode_test.go:727: test 100: "%YAML 1.1\n--- !!str\n\"Generic line break (no glyph)\\n\\\n Generic line break (glyphed)\\n\\\n Line separator\\u2028\\\n Paragraph separator\\u2029\"\n" === RUN TestUnmarshal/101 decode_test.go:727: test 101: "a: -b_c" === RUN TestUnmarshal/102 decode_test.go:727: test 102: "a: +b_c" === RUN TestUnmarshal/103 decode_test.go:727: test 103: "a: 50cent_of_dollar" === RUN TestUnmarshal/104 decode_test.go:727: test 104: "a: {b: https://github.com/go-yaml/yaml}" === RUN TestUnmarshal/105 decode_test.go:727: test 105: "a: [https://github.com/go-yaml/yaml]" === RUN TestUnmarshal/106 decode_test.go:727: test 106: "a: 3s" === RUN TestUnmarshal/107 decode_test.go:727: test 107: "a: " === RUN TestUnmarshal/108 decode_test.go:727: test 108: "a: 1:1\n" === RUN TestUnmarshal/109 decode_test.go:727: test 109: "a: !!binary gIGC\n" === RUN TestUnmarshal/110 decode_test.go:727: test 110: "a: !!binary |\n kJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ\n CQ\n" === RUN TestUnmarshal/111 decode_test.go:727: test 111: "a: !!binary |\n AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n ==\n" === RUN TestUnmarshal/112 decode_test.go:727: test 112: "{b: 2, a: 1, d: 4, c: 3, sub: {e: 5}}" === RUN TestUnmarshal/113 decode_test.go:727: test 113: "\na: {}\nc: 1\nd: [\n]\ne: []\n" === RUN TestUnmarshal/114 decode_test.go:727: test 114: "\na:\n - { \"a\": 1, \"b\": 2 }\n - { \"c\": 1, \"d\": 2 }\n" === RUN TestUnmarshal/115 decode_test.go:727: test 115: "a:\n b:\n c: d\n e: f\n" === RUN TestUnmarshal/116 decode_test.go:727: test 116: "a:\n b:\n c: d\n" === RUN TestUnmarshal/117 decode_test.go:727: test 117: "a: 2015-01-01\n" === RUN TestUnmarshal/118 decode_test.go:727: test 118: "a: 2015-02-24T18:19:39.12Z\n" === RUN TestUnmarshal/119 decode_test.go:727: test 119: "a: 2015-2-3T3:4:5Z" === RUN TestUnmarshal/120 decode_test.go:727: test 120: "a: 2015-02-24t18:19:39Z\n" === RUN TestUnmarshal/121 decode_test.go:727: test 121: "a: 2015-02-24 18:19:39\n" === RUN TestUnmarshal/122 decode_test.go:727: test 122: "a: !!str 2015-01-01" === RUN TestUnmarshal/123 decode_test.go:727: test 123: "a: !!timestamp \"2015-01-01\"" === RUN TestUnmarshal/124 decode_test.go:727: test 124: "a: !!timestamp 2015-01-01" === RUN TestUnmarshal/125 decode_test.go:727: test 125: "a: \"2015-01-01\"" === RUN TestUnmarshal/126 decode_test.go:727: test 126: "a: []" === RUN TestUnmarshal/127 decode_test.go:727: test 127: "\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00\n\x00" === RUN TestUnmarshal/128 decode_test.go:727: test 128: "\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00 \x00=\xd8\xd4\xdf\n\x00" === RUN TestUnmarshal/129 decode_test.go:727: test 129: "\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00\n" === RUN TestUnmarshal/130 decode_test.go:727: test 130: "\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00 \xd8=\xdf\xd4\x00\n" === RUN TestUnmarshal/131 decode_test.go:727: test 131: "a: 123456e1\n" === RUN TestUnmarshal/132 decode_test.go:727: test 132: "a: 123456E1\n" === RUN TestUnmarshal/133 decode_test.go:727: test 133: "First occurrence: &anchor Foo\nSecond occurrence: *anchor\nOverride anchor: &anchor Bar\nReuse anchor: *anchor\n" === RUN TestUnmarshal/134 decode_test.go:727: test 134: "---\nhello\n...\n}not yaml" --- PASS: TestUnmarshal (0.13s) --- PASS: TestUnmarshal/0 (0.01s) --- PASS: TestUnmarshal/1 (0.01s) --- PASS: TestUnmarshal/2 (0.01s) --- PASS: TestUnmarshal/3 (0.00s) --- PASS: TestUnmarshal/4 (0.00s) --- PASS: TestUnmarshal/5 (0.00s) --- PASS: TestUnmarshal/6 (0.00s) --- PASS: TestUnmarshal/7 (0.00s) --- PASS: TestUnmarshal/8 (0.00s) --- PASS: TestUnmarshal/9 (0.00s) --- PASS: TestUnmarshal/10 (0.00s) --- PASS: TestUnmarshal/11 (0.00s) --- PASS: TestUnmarshal/12 (0.00s) --- PASS: TestUnmarshal/13 (0.00s) --- PASS: TestUnmarshal/14 (0.00s) --- PASS: TestUnmarshal/15 (0.00s) --- PASS: TestUnmarshal/16 (0.00s) --- PASS: TestUnmarshal/17 (0.00s) --- PASS: TestUnmarshal/18 (0.00s) --- PASS: TestUnmarshal/19 (0.00s) --- PASS: TestUnmarshal/20 (0.00s) --- PASS: TestUnmarshal/21 (0.00s) --- PASS: TestUnmarshal/22 (0.00s) --- PASS: TestUnmarshal/23 (0.00s) --- PASS: TestUnmarshal/24 (0.00s) --- PASS: TestUnmarshal/25 (0.00s) --- PASS: TestUnmarshal/26 (0.00s) --- PASS: TestUnmarshal/27 (0.00s) --- PASS: TestUnmarshal/28 (0.00s) --- PASS: TestUnmarshal/29 (0.00s) --- PASS: TestUnmarshal/30 (0.00s) --- PASS: TestUnmarshal/31 (0.00s) --- PASS: TestUnmarshal/32 (0.00s) --- PASS: TestUnmarshal/33 (0.00s) --- PASS: TestUnmarshal/34 (0.00s) --- PASS: TestUnmarshal/35 (0.00s) --- PASS: TestUnmarshal/36 (0.00s) --- PASS: TestUnmarshal/37 (0.00s) --- PASS: TestUnmarshal/38 (0.00s) --- PASS: TestUnmarshal/39 (0.00s) --- PASS: TestUnmarshal/40 (0.00s) --- PASS: TestUnmarshal/41 (0.00s) --- PASS: TestUnmarshal/42 (0.00s) --- PASS: TestUnmarshal/43 (0.00s) --- PASS: TestUnmarshal/44 (0.00s) --- PASS: TestUnmarshal/45 (0.00s) --- PASS: TestUnmarshal/46 (0.00s) --- PASS: TestUnmarshal/47 (0.00s) --- PASS: TestUnmarshal/48 (0.00s) --- PASS: TestUnmarshal/49 (0.00s) --- PASS: TestUnmarshal/50 (0.00s) --- PASS: TestUnmarshal/51 (0.00s) --- PASS: TestUnmarshal/52 (0.00s) --- PASS: TestUnmarshal/53 (0.00s) --- PASS: TestUnmarshal/54 (0.00s) --- PASS: TestUnmarshal/55 (0.00s) --- PASS: TestUnmarshal/56 (0.00s) --- PASS: TestUnmarshal/57 (0.00s) --- PASS: TestUnmarshal/58 (0.00s) --- PASS: TestUnmarshal/59 (0.00s) --- PASS: TestUnmarshal/60 (0.00s) --- PASS: TestUnmarshal/61 (0.00s) --- PASS: TestUnmarshal/62 (0.00s) --- PASS: TestUnmarshal/63 (0.00s) --- PASS: TestUnmarshal/64 (0.00s) --- PASS: TestUnmarshal/65 (0.00s) --- PASS: TestUnmarshal/66 (0.00s) --- PASS: TestUnmarshal/67 (0.00s) --- PASS: TestUnmarshal/68 (0.00s) --- PASS: TestUnmarshal/69 (0.00s) --- PASS: TestUnmarshal/70 (0.00s) --- PASS: TestUnmarshal/71 (0.00s) --- PASS: TestUnmarshal/72 (0.00s) --- PASS: TestUnmarshal/73 (0.00s) --- PASS: TestUnmarshal/74 (0.00s) --- PASS: TestUnmarshal/75 (0.00s) --- PASS: TestUnmarshal/76 (0.00s) --- PASS: TestUnmarshal/77 (0.00s) --- PASS: TestUnmarshal/78 (0.00s) --- PASS: TestUnmarshal/79 (0.00s) --- PASS: TestUnmarshal/80 (0.00s) --- PASS: TestUnmarshal/81 (0.00s) --- PASS: TestUnmarshal/82 (0.00s) --- PASS: TestUnmarshal/83 (0.00s) --- PASS: TestUnmarshal/84 (0.00s) --- PASS: TestUnmarshal/85 (0.00s) --- PASS: TestUnmarshal/86 (0.00s) --- PASS: TestUnmarshal/87 (0.00s) --- PASS: TestUnmarshal/88 (0.00s) --- PASS: TestUnmarshal/89 (0.00s) --- PASS: TestUnmarshal/90 (0.00s) --- PASS: TestUnmarshal/91 (0.00s) --- PASS: TestUnmarshal/92 (0.00s) --- PASS: TestUnmarshal/93 (0.00s) --- PASS: TestUnmarshal/94 (0.00s) --- PASS: TestUnmarshal/95 (0.00s) --- PASS: TestUnmarshal/96 (0.00s) --- PASS: TestUnmarshal/97 (0.00s) --- PASS: TestUnmarshal/98 (0.00s) --- PASS: TestUnmarshal/99 (0.00s) --- PASS: TestUnmarshal/100 (0.00s) --- PASS: TestUnmarshal/101 (0.00s) --- PASS: TestUnmarshal/102 (0.00s) --- PASS: TestUnmarshal/103 (0.00s) --- PASS: TestUnmarshal/104 (0.00s) --- PASS: TestUnmarshal/105 (0.00s) --- PASS: TestUnmarshal/106 (0.00s) --- PASS: TestUnmarshal/107 (0.00s) --- PASS: TestUnmarshal/108 (0.00s) --- PASS: TestUnmarshal/109 (0.00s) --- PASS: TestUnmarshal/110 (0.00s) --- PASS: TestUnmarshal/111 (0.00s) --- PASS: TestUnmarshal/112 (0.00s) --- PASS: TestUnmarshal/113 (0.00s) --- PASS: TestUnmarshal/114 (0.00s) --- PASS: TestUnmarshal/115 (0.00s) --- PASS: TestUnmarshal/116 (0.00s) --- PASS: TestUnmarshal/117 (0.00s) --- PASS: TestUnmarshal/118 (0.00s) --- PASS: TestUnmarshal/119 (0.00s) --- PASS: TestUnmarshal/120 (0.00s) --- PASS: TestUnmarshal/121 (0.00s) --- PASS: TestUnmarshal/122 (0.00s) --- PASS: TestUnmarshal/123 (0.00s) --- PASS: TestUnmarshal/124 (0.00s) --- PASS: TestUnmarshal/125 (0.00s) --- PASS: TestUnmarshal/126 (0.00s) --- PASS: TestUnmarshal/127 (0.00s) --- PASS: TestUnmarshal/128 (0.00s) --- PASS: TestUnmarshal/129 (0.00s) --- PASS: TestUnmarshal/130 (0.00s) --- PASS: TestUnmarshal/131 (0.00s) --- PASS: TestUnmarshal/132 (0.00s) --- PASS: TestUnmarshal/133 (0.00s) --- PASS: TestUnmarshal/134 (0.00s) === RUN TestDecoderSingleDocument === RUN TestDecoderSingleDocument/test_0:_"" === RUN TestDecoderSingleDocument/test_1:_"{}" === RUN TestDecoderSingleDocument/test_2:_"v:_hi" === RUN TestDecoderSingleDocument/test_3:_"v:_hi" === RUN TestDecoderSingleDocument/test_4:_"v:_true" === RUN TestDecoderSingleDocument/test_5:_"v:_10" === RUN TestDecoderSingleDocument/test_6:_"v:_0b10" === RUN TestDecoderSingleDocument/test_7:_"v:_0xA" === RUN TestDecoderSingleDocument/test_8:_"v:_4294967296" === RUN TestDecoderSingleDocument/test_9:_"v:_0.1" === RUN TestDecoderSingleDocument/test_10:_"v:_.1" === RUN TestDecoderSingleDocument/test_11:_"v:_.Inf" === RUN TestDecoderSingleDocument/test_12:_"v:_-.Inf" === RUN TestDecoderSingleDocument/test_13:_"v:_-10" === RUN TestDecoderSingleDocument/test_14:_"v:_-.1" === RUN TestDecoderSingleDocument/test_15:_"123" === RUN TestDecoderSingleDocument/test_16:_"canonical:_6.8523e+5" === RUN TestDecoderSingleDocument/test_17:_"expo:_685.230_15e+03" === RUN TestDecoderSingleDocument/test_18:_"fixed:_685_230.15" === RUN TestDecoderSingleDocument/test_19:_"neginf:_-.inf" === RUN TestDecoderSingleDocument/test_20:_"fixed:_685_230.15" === RUN TestDecoderSingleDocument/test_21:_"canonical:_y" === RUN TestDecoderSingleDocument/test_22:_"answer:_n" === RUN TestDecoderSingleDocument/test_23:_"answer:_NO" === RUN TestDecoderSingleDocument/test_24:_"logical:_True" === RUN TestDecoderSingleDocument/test_25:_"option:_on" === RUN TestDecoderSingleDocument/test_26:_"answer:_off" === RUN TestDecoderSingleDocument/test_27:_"canonical:_685230" === RUN TestDecoderSingleDocument/test_28:_"decimal:_+685_230" === RUN TestDecoderSingleDocument/test_29:_"octal:_02472256" === RUN TestDecoderSingleDocument/test_30:_"hexa:_0x_0A_74_AE" === RUN TestDecoderSingleDocument/test_31:_"bin:_0b1010_0111_0100_1010_1110" === RUN TestDecoderSingleDocument/test_32:_"bin:_-0b101010" === RUN TestDecoderSingleDocument/test_33:_"bin:_-0b1000000000000000000000000000000000000000000000000000000000000000" === RUN TestDecoderSingleDocument/test_34:_"decimal:_+685_230" === RUN TestDecoderSingleDocument/test_35:_"empty:" === RUN TestDecoderSingleDocument/test_36:_"canonical:_~" === RUN TestDecoderSingleDocument/test_37:_"english:_null" === RUN TestDecoderSingleDocument/test_38:_"_foo:_1" === RUN TestDecoderSingleDocument/test_39:_"\"#foo\":_1" === RUN TestDecoderSingleDocument/test_40:_"_#foo:_1" === RUN TestDecoderSingleDocument/test_41:_"~:_null_key" === RUN TestDecoderSingleDocument/test_42:_"empty:\napple:_\"newline\"" === RUN TestDecoderSingleDocument/test_43:_"seq:_[A,B]" === RUN TestDecoderSingleDocument/test_44:_"seq:_[A,B,C,]" === RUN TestDecoderSingleDocument/test_45:_"seq:_[A,1,C]" === RUN TestDecoderSingleDocument/test_46:_"seq:\n_-_A\n_-_B" === RUN TestDecoderSingleDocument/test_47:_"seq:\n_-_A\n_-_B\n_-_C" === RUN TestDecoderSingleDocument/test_48:_"seq:\n_-_A\n_-_1\n_-_C" === RUN TestDecoderSingleDocument/test_49:_"scalar:_|_#_Comment\n\n_literal\n\n_\ttext\n\n" === RUN TestDecoderSingleDocument/test_50:_"scalar:_>_#_Comment\n\n_folded\n_line\n_\n_next\n_line\n__*_one\n__*_two\n\n_last\n_line\n\n" === RUN TestDecoderSingleDocument/test_51:_"a:_{b:_c}" === RUN TestDecoderSingleDocument/test_52:_"hello:_world" === RUN TestDecoderSingleDocument/test_53:_"a:" === RUN TestDecoderSingleDocument/test_54:_"a:_1" === RUN TestDecoderSingleDocument/test_55:_"a:_1.0" === RUN TestDecoderSingleDocument/test_56:_"a:_[1,_2]" === RUN TestDecoderSingleDocument/test_57:_"a:_y" === RUN TestDecoderSingleDocument/test_58:_"{_a:_1,_b:_{c:_1}_}" === RUN TestDecoderSingleDocument/test_59:_"v:_42" === RUN TestDecoderSingleDocument/test_60:_"v:_-42" === RUN TestDecoderSingleDocument/test_61:_"v:_4294967296" === RUN TestDecoderSingleDocument/test_62:_"v:_-4294967296" === RUN TestDecoderSingleDocument/test_63:_"int_max:_2147483647" === RUN TestDecoderSingleDocument/test_64:_"int_min:_-2147483648" === RUN TestDecoderSingleDocument/test_65:_"int_overflow:_9223372036854775808" === RUN TestDecoderSingleDocument/test_66:_"int64_max:_9223372036854775807" === RUN TestDecoderSingleDocument/test_67:_"int64_max_base2:_0b111111111111111111111111111111111111111111111111111111111111111" === RUN TestDecoderSingleDocument/test_68:_"int64_min:_-9223372036854775808" === RUN TestDecoderSingleDocument/test_69:_"int64_neg_base2:_-0b111111111111111111111111111111111111111111111111111111111111111" === RUN TestDecoderSingleDocument/test_70:_"int64_overflow:_9223372036854775808" === RUN TestDecoderSingleDocument/test_71:_"uint_max:_4294967295" === RUN TestDecoderSingleDocument/test_72:_"uint64_max:_18446744073709551615" === RUN TestDecoderSingleDocument/test_73:_"uint64_max_base2:_0b1111111111111111111111111111111111111111111111111111111111111111" === RUN TestDecoderSingleDocument/test_74:_"uint64_maxint64:_9223372036854775807" === RUN TestDecoderSingleDocument/test_75:_"float32_max:_3.40282346638528859811704183484516925440e+38" === RUN TestDecoderSingleDocument/test_76:_"float32_nonzero:_1.401298464324817070923729583289916131280e-45" === RUN TestDecoderSingleDocument/test_77:_"float32_maxuint64:_18446744073709551615" === RUN TestDecoderSingleDocument/test_78:_"float32_maxuint64+1:_18446744073709551616" === RUN TestDecoderSingleDocument/test_79:_"float64_max:_1.797693134862315708145274237317043567981e+308" === RUN TestDecoderSingleDocument/test_80:_"float64_nonzero:_4.940656458412465441765687928682213723651e-324" === RUN TestDecoderSingleDocument/test_81:_"float64_maxuint64:_18446744073709551615" === RUN TestDecoderSingleDocument/test_82:_"float64_maxuint64+1:_18446744073709551616" === RUN TestDecoderSingleDocument/test_83:_"v:_4294967297" === RUN TestDecoderSingleDocument/test_84:_"v:_128" === RUN TestDecoderSingleDocument/test_85:_"'1':_'\"2\"'" === RUN TestDecoderSingleDocument/test_86:_"v:\n-_A\n-_'B\n\n__C'\n" === RUN TestDecoderSingleDocument/test_87:_"\"\\0\"" === RUN TestDecoderSingleDocument/test_88:_"v:_!!float_'1.1'" === RUN TestDecoderSingleDocument/test_89:_"v:_!!float_0" === RUN TestDecoderSingleDocument/test_90:_"v:_!!float_-1" === RUN TestDecoderSingleDocument/test_91:_"v:_!!null_''" === RUN TestDecoderSingleDocument/test_92:_"%TAG_!y!_tag:yaml.org,2002:\n---\nv:_!y!int_'1'" === RUN TestDecoderSingleDocument/test_93:_"v:_!_test" === RUN TestDecoderSingleDocument/test_94:_"a:_&x_1\nb:_&y_2\nc:_*x\nd:_*y\n" === RUN TestDecoderSingleDocument/test_95:_"a:_&a_{c:_1}\nb:_*a" === RUN TestDecoderSingleDocument/test_96:_"a:_&a_[1,_2]\nb:_*a" === RUN TestDecoderSingleDocument/test_97:_"foo:_''" === RUN TestDecoderSingleDocument/test_98:_"foo:_null" === RUN TestDecoderSingleDocument/test_99:_"foo:_~" === RUN TestDecoderSingleDocument/test_100:_"%YAML_1.1\n---_!!str\n\"Generic_line_break_(no_glyph)\\n\\\n_Generic_line_break_(glyphed)\\n\\\n_Line_separator\\u2028\\\n_Paragraph_separator\\u2029\"\n" === RUN TestDecoderSingleDocument/test_101:_"a:_-b_c" === RUN TestDecoderSingleDocument/test_102:_"a:_+b_c" === RUN TestDecoderSingleDocument/test_103:_"a:_50cent_of_dollar" === RUN TestDecoderSingleDocument/test_104:_"a:_{b:_https://github.com/go-yaml/yaml}" === RUN TestDecoderSingleDocument/test_105:_"a:_[https://github.com/go-yaml/yaml]" === RUN TestDecoderSingleDocument/test_106:_"a:_3s" === RUN TestDecoderSingleDocument/test_107:_"a:_" === RUN TestDecoderSingleDocument/test_108:_"a:_1:1\n" === RUN TestDecoderSingleDocument/test_109:_"a:_!!binary_gIGC\n" === RUN TestDecoderSingleDocument/test_110:_"a:_!!binary_|\n__kJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ\n__CQ\n" === RUN TestDecoderSingleDocument/test_111:_"a:_!!binary_|\n__AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n__==\n" === RUN TestDecoderSingleDocument/test_112:_"{b:_2,_a:_1,_d:_4,_c:_3,_sub:_{e:_5}}" === RUN TestDecoderSingleDocument/test_113:_"\na:_{}\nc:_1\nd:_[\n]\ne:_[]\n" === RUN TestDecoderSingleDocument/test_114:_"\na:\n__-_{_\"a\":_1,_\"b\":_2_}\n__-_{_\"c\":_1,_\"d\":_2_}\n" === RUN TestDecoderSingleDocument/test_115:_"a:\n_b:\n__c:_d\n__e:_f\n" === RUN TestDecoderSingleDocument/test_116:_"a:\n_b:\n__c:_d\n" === RUN TestDecoderSingleDocument/test_117:_"a:_2015-01-01\n" === RUN TestDecoderSingleDocument/test_118:_"a:_2015-02-24T18:19:39.12Z\n" === RUN TestDecoderSingleDocument/test_119:_"a:_2015-2-3T3:4:5Z" === RUN TestDecoderSingleDocument/test_120:_"a:_2015-02-24t18:19:39Z\n" === RUN TestDecoderSingleDocument/test_121:_"a:_2015-02-24_18:19:39\n" === RUN TestDecoderSingleDocument/test_122:_"a:_!!str_2015-01-01" === RUN TestDecoderSingleDocument/test_123:_"a:_!!timestamp_\"2015-01-01\"" === RUN TestDecoderSingleDocument/test_124:_"a:_!!timestamp_2015-01-01" === RUN TestDecoderSingleDocument/test_125:_"a:_\"2015-01-01\"" === RUN TestDecoderSingleDocument/test_126:_"a:_[]" === RUN TestDecoderSingleDocument/test_127:_"\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00\n\x00" === RUN TestDecoderSingleDocument/test_128:_"\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00_\x00=\xd8\xd4\xdf\n\x00" === RUN TestDecoderSingleDocument/test_129:_"\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00\n" === RUN TestDecoderSingleDocument/test_130:_"\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00_\xd8=\xdf\xd4\x00\n" === RUN TestDecoderSingleDocument/test_131:_"a:_123456e1\n" === RUN TestDecoderSingleDocument/test_132:_"a:_123456E1\n" === RUN TestDecoderSingleDocument/test_133:_"First_occurrence:_&anchor_Foo\nSecond_occurrence:_*anchor\nOverride_anchor:_&anchor_Bar\nReuse_anchor:_*anchor\n" === RUN TestDecoderSingleDocument/test_134:_"---\nhello\n...\n}not_yaml" --- PASS: TestDecoderSingleDocument (0.08s) --- PASS: TestDecoderSingleDocument/test_0:_"" (0.00s) --- PASS: TestDecoderSingleDocument/test_1:_"{}" (0.00s) --- PASS: TestDecoderSingleDocument/test_2:_"v:_hi" (0.00s) --- PASS: TestDecoderSingleDocument/test_3:_"v:_hi" (0.00s) --- PASS: TestDecoderSingleDocument/test_4:_"v:_true" (0.00s) --- PASS: TestDecoderSingleDocument/test_5:_"v:_10" (0.00s) --- PASS: TestDecoderSingleDocument/test_6:_"v:_0b10" (0.00s) --- PASS: TestDecoderSingleDocument/test_7:_"v:_0xA" (0.00s) --- PASS: TestDecoderSingleDocument/test_8:_"v:_4294967296" (0.00s) --- PASS: TestDecoderSingleDocument/test_9:_"v:_0.1" (0.00s) --- PASS: TestDecoderSingleDocument/test_10:_"v:_.1" (0.00s) --- PASS: TestDecoderSingleDocument/test_11:_"v:_.Inf" (0.00s) --- PASS: TestDecoderSingleDocument/test_12:_"v:_-.Inf" (0.00s) --- PASS: TestDecoderSingleDocument/test_13:_"v:_-10" (0.00s) --- PASS: TestDecoderSingleDocument/test_14:_"v:_-.1" (0.00s) --- PASS: TestDecoderSingleDocument/test_15:_"123" (0.00s) --- PASS: TestDecoderSingleDocument/test_16:_"canonical:_6.8523e+5" (0.00s) --- PASS: TestDecoderSingleDocument/test_17:_"expo:_685.230_15e+03" (0.00s) --- PASS: TestDecoderSingleDocument/test_18:_"fixed:_685_230.15" (0.00s) --- PASS: TestDecoderSingleDocument/test_19:_"neginf:_-.inf" (0.00s) --- PASS: TestDecoderSingleDocument/test_20:_"fixed:_685_230.15" (0.00s) --- PASS: TestDecoderSingleDocument/test_21:_"canonical:_y" (0.00s) --- PASS: TestDecoderSingleDocument/test_22:_"answer:_n" (0.00s) --- PASS: TestDecoderSingleDocument/test_23:_"answer:_NO" (0.00s) --- PASS: TestDecoderSingleDocument/test_24:_"logical:_True" (0.00s) --- PASS: TestDecoderSingleDocument/test_25:_"option:_on" (0.00s) --- PASS: TestDecoderSingleDocument/test_26:_"answer:_off" (0.00s) --- PASS: TestDecoderSingleDocument/test_27:_"canonical:_685230" (0.00s) --- PASS: TestDecoderSingleDocument/test_28:_"decimal:_+685_230" (0.00s) --- PASS: TestDecoderSingleDocument/test_29:_"octal:_02472256" (0.00s) --- PASS: TestDecoderSingleDocument/test_30:_"hexa:_0x_0A_74_AE" (0.00s) --- PASS: TestDecoderSingleDocument/test_31:_"bin:_0b1010_0111_0100_1010_1110" (0.00s) --- PASS: TestDecoderSingleDocument/test_32:_"bin:_-0b101010" (0.00s) --- PASS: TestDecoderSingleDocument/test_33:_"bin:_-0b1000000000000000000000000000000000000000000000000000000000000000" (0.00s) --- PASS: TestDecoderSingleDocument/test_34:_"decimal:_+685_230" (0.00s) --- PASS: TestDecoderSingleDocument/test_35:_"empty:" (0.00s) --- PASS: TestDecoderSingleDocument/test_36:_"canonical:_~" (0.00s) --- PASS: TestDecoderSingleDocument/test_37:_"english:_null" (0.00s) --- PASS: TestDecoderSingleDocument/test_38:_"_foo:_1" (0.00s) --- PASS: TestDecoderSingleDocument/test_39:_"\"#foo\":_1" (0.00s) --- PASS: TestDecoderSingleDocument/test_40:_"_#foo:_1" (0.00s) --- PASS: TestDecoderSingleDocument/test_41:_"~:_null_key" (0.00s) --- PASS: TestDecoderSingleDocument/test_42:_"empty:\napple:_\"newline\"" (0.00s) --- PASS: TestDecoderSingleDocument/test_43:_"seq:_[A,B]" (0.00s) --- PASS: TestDecoderSingleDocument/test_44:_"seq:_[A,B,C,]" (0.00s) --- PASS: TestDecoderSingleDocument/test_45:_"seq:_[A,1,C]" (0.00s) --- PASS: TestDecoderSingleDocument/test_46:_"seq:\n_-_A\n_-_B" (0.00s) --- PASS: TestDecoderSingleDocument/test_47:_"seq:\n_-_A\n_-_B\n_-_C" (0.00s) --- PASS: TestDecoderSingleDocument/test_48:_"seq:\n_-_A\n_-_1\n_-_C" (0.00s) --- PASS: TestDecoderSingleDocument/test_49:_"scalar:_|_#_Comment\n\n_literal\n\n_\ttext\n\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_50:_"scalar:_>_#_Comment\n\n_folded\n_line\n_\n_next\n_line\n__*_one\n__*_two\n\n_last\n_line\n\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_51:_"a:_{b:_c}" (0.00s) --- PASS: TestDecoderSingleDocument/test_52:_"hello:_world" (0.00s) --- PASS: TestDecoderSingleDocument/test_53:_"a:" (0.00s) --- PASS: TestDecoderSingleDocument/test_54:_"a:_1" (0.00s) --- PASS: TestDecoderSingleDocument/test_55:_"a:_1.0" (0.00s) --- PASS: TestDecoderSingleDocument/test_56:_"a:_[1,_2]" (0.00s) --- PASS: TestDecoderSingleDocument/test_57:_"a:_y" (0.00s) --- PASS: TestDecoderSingleDocument/test_58:_"{_a:_1,_b:_{c:_1}_}" (0.00s) --- PASS: TestDecoderSingleDocument/test_59:_"v:_42" (0.00s) --- PASS: TestDecoderSingleDocument/test_60:_"v:_-42" (0.00s) --- PASS: TestDecoderSingleDocument/test_61:_"v:_4294967296" (0.00s) --- PASS: TestDecoderSingleDocument/test_62:_"v:_-4294967296" (0.00s) --- PASS: TestDecoderSingleDocument/test_63:_"int_max:_2147483647" (0.00s) --- PASS: TestDecoderSingleDocument/test_64:_"int_min:_-2147483648" (0.00s) --- PASS: TestDecoderSingleDocument/test_65:_"int_overflow:_9223372036854775808" (0.00s) --- PASS: TestDecoderSingleDocument/test_66:_"int64_max:_9223372036854775807" (0.00s) --- PASS: TestDecoderSingleDocument/test_67:_"int64_max_base2:_0b111111111111111111111111111111111111111111111111111111111111111" (0.00s) --- PASS: TestDecoderSingleDocument/test_68:_"int64_min:_-9223372036854775808" (0.00s) --- PASS: TestDecoderSingleDocument/test_69:_"int64_neg_base2:_-0b111111111111111111111111111111111111111111111111111111111111111" (0.00s) --- PASS: TestDecoderSingleDocument/test_70:_"int64_overflow:_9223372036854775808" (0.00s) --- PASS: TestDecoderSingleDocument/test_71:_"uint_max:_4294967295" (0.00s) --- PASS: TestDecoderSingleDocument/test_72:_"uint64_max:_18446744073709551615" (0.00s) --- PASS: TestDecoderSingleDocument/test_73:_"uint64_max_base2:_0b1111111111111111111111111111111111111111111111111111111111111111" (0.02s) --- PASS: TestDecoderSingleDocument/test_74:_"uint64_maxint64:_9223372036854775807" (0.00s) --- PASS: TestDecoderSingleDocument/test_75:_"float32_max:_3.40282346638528859811704183484516925440e+38" (0.00s) --- PASS: TestDecoderSingleDocument/test_76:_"float32_nonzero:_1.401298464324817070923729583289916131280e-45" (0.00s) --- PASS: TestDecoderSingleDocument/test_77:_"float32_maxuint64:_18446744073709551615" (0.00s) --- PASS: TestDecoderSingleDocument/test_78:_"float32_maxuint64+1:_18446744073709551616" (0.00s) --- PASS: TestDecoderSingleDocument/test_79:_"float64_max:_1.797693134862315708145274237317043567981e+308" (0.00s) --- PASS: TestDecoderSingleDocument/test_80:_"float64_nonzero:_4.940656458412465441765687928682213723651e-324" (0.00s) --- PASS: TestDecoderSingleDocument/test_81:_"float64_maxuint64:_18446744073709551615" (0.00s) --- PASS: TestDecoderSingleDocument/test_82:_"float64_maxuint64+1:_18446744073709551616" (0.00s) --- PASS: TestDecoderSingleDocument/test_83:_"v:_4294967297" (0.00s) --- PASS: TestDecoderSingleDocument/test_84:_"v:_128" (0.00s) --- PASS: TestDecoderSingleDocument/test_85:_"'1':_'\"2\"'" (0.00s) --- PASS: TestDecoderSingleDocument/test_86:_"v:\n-_A\n-_'B\n\n__C'\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_87:_"\"\\0\"" (0.00s) --- PASS: TestDecoderSingleDocument/test_88:_"v:_!!float_'1.1'" (0.00s) --- PASS: TestDecoderSingleDocument/test_89:_"v:_!!float_0" (0.00s) --- PASS: TestDecoderSingleDocument/test_90:_"v:_!!float_-1" (0.00s) --- PASS: TestDecoderSingleDocument/test_91:_"v:_!!null_''" (0.00s) --- PASS: TestDecoderSingleDocument/test_92:_"%TAG_!y!_tag:yaml.org,2002:\n---\nv:_!y!int_'1'" (0.00s) --- PASS: TestDecoderSingleDocument/test_93:_"v:_!_test" (0.00s) --- PASS: TestDecoderSingleDocument/test_94:_"a:_&x_1\nb:_&y_2\nc:_*x\nd:_*y\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_95:_"a:_&a_{c:_1}\nb:_*a" (0.00s) --- PASS: TestDecoderSingleDocument/test_96:_"a:_&a_[1,_2]\nb:_*a" (0.00s) --- PASS: TestDecoderSingleDocument/test_97:_"foo:_''" (0.00s) --- PASS: TestDecoderSingleDocument/test_98:_"foo:_null" (0.00s) --- PASS: TestDecoderSingleDocument/test_99:_"foo:_~" (0.00s) --- PASS: TestDecoderSingleDocument/test_100:_"%YAML_1.1\n---_!!str\n\"Generic_line_break_(no_glyph)\\n\\\n_Generic_line_break_(glyphed)\\n\\\n_Line_separator\\u2028\\\n_Paragraph_separator\\u2029\"\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_101:_"a:_-b_c" (0.00s) --- PASS: TestDecoderSingleDocument/test_102:_"a:_+b_c" (0.00s) --- PASS: TestDecoderSingleDocument/test_103:_"a:_50cent_of_dollar" (0.00s) --- PASS: TestDecoderSingleDocument/test_104:_"a:_{b:_https://github.com/go-yaml/yaml}" (0.00s) --- PASS: TestDecoderSingleDocument/test_105:_"a:_[https://github.com/go-yaml/yaml]" (0.00s) --- PASS: TestDecoderSingleDocument/test_106:_"a:_3s" (0.00s) --- PASS: TestDecoderSingleDocument/test_107:_"a:_" (0.00s) --- PASS: TestDecoderSingleDocument/test_108:_"a:_1:1\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_109:_"a:_!!binary_gIGC\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_110:_"a:_!!binary_|\n__kJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ\n__CQ\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_111:_"a:_!!binary_|\n__AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n__==\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_112:_"{b:_2,_a:_1,_d:_4,_c:_3,_sub:_{e:_5}}" (0.00s) --- PASS: TestDecoderSingleDocument/test_113:_"\na:_{}\nc:_1\nd:_[\n]\ne:_[]\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_114:_"\na:\n__-_{_\"a\":_1,_\"b\":_2_}\n__-_{_\"c\":_1,_\"d\":_2_}\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_115:_"a:\n_b:\n__c:_d\n__e:_f\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_116:_"a:\n_b:\n__c:_d\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_117:_"a:_2015-01-01\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_118:_"a:_2015-02-24T18:19:39.12Z\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_119:_"a:_2015-2-3T3:4:5Z" (0.00s) --- PASS: TestDecoderSingleDocument/test_120:_"a:_2015-02-24t18:19:39Z\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_121:_"a:_2015-02-24_18:19:39\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_122:_"a:_!!str_2015-01-01" (0.00s) --- PASS: TestDecoderSingleDocument/test_123:_"a:_!!timestamp_\"2015-01-01\"" (0.00s) --- PASS: TestDecoderSingleDocument/test_124:_"a:_!!timestamp_2015-01-01" (0.00s) --- PASS: TestDecoderSingleDocument/test_125:_"a:_\"2015-01-01\"" (0.00s) --- PASS: TestDecoderSingleDocument/test_126:_"a:_[]" (0.00s) --- PASS: TestDecoderSingleDocument/test_127:_"\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00\n\x00" (0.00s) --- PASS: TestDecoderSingleDocument/test_128:_"\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00_\x00=\xd8\xd4\xdf\n\x00" (0.00s) --- PASS: TestDecoderSingleDocument/test_129:_"\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_130:_"\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00_\x00v\x00e\x00r\x00y\x00_\x00y\x00e\x00s\x00_\xd8=\xdf\xd4\x00\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_131:_"a:_123456e1\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_132:_"a:_123456E1\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_133:_"First_occurrence:_&anchor_Foo\nSecond_occurrence:_*anchor\nOverride_anchor:_&anchor_Bar\nReuse_anchor:_*anchor\n" (0.00s) --- PASS: TestDecoderSingleDocument/test_134:_"---\nhello\n...\n}not_yaml" (0.00s) === RUN TestDecoder === RUN TestDecoder/test_0:_"" === RUN TestDecoder/test_1:_"a:_b" === RUN TestDecoder/test_2:_"---\na:_b\n...\n" === RUN TestDecoder/test_3:_"---\n'hello'\n...\n---\ngoodbye\n...\n" --- PASS: TestDecoder (0.00s) --- PASS: TestDecoder/test_0:_"" (0.00s) --- PASS: TestDecoder/test_1:_"a:_b" (0.00s) --- PASS: TestDecoder/test_2:_"---\na:_b\n...\n" (0.00s) --- PASS: TestDecoder/test_3:_"---\n'hello'\n...\n---\ngoodbye\n...\n" (0.00s) === RUN TestUnmarshalNaN --- PASS: TestUnmarshalNaN (0.00s) === RUN TestUnmarshalErrors === RUN TestUnmarshalErrors/test_0:_"\nv:_!!float_'error'" === RUN TestUnmarshalErrors/test_1:_"v:_[A," === RUN TestUnmarshalErrors/test_2:_"v:\n-_[A," === RUN TestUnmarshalErrors/test_3:_"a:\n-_b:_*," === RUN TestUnmarshalErrors/test_4:_"a:_*b\n" === RUN TestUnmarshalErrors/test_5:_"a:_&a\n__b:_*a\n" === RUN TestUnmarshalErrors/test_6:_"value:_-" === RUN TestUnmarshalErrors/test_7:_"a:_!!binary_==" === RUN TestUnmarshalErrors/test_8:_"{[.]}" === RUN TestUnmarshalErrors/test_9:_"{{.}}" === RUN TestUnmarshalErrors/test_10:_"b:_*a\na:_&a_{c:_1}" === RUN TestUnmarshalErrors/test_11:_"%TAG_!%79!_tag:yaml.org,2002:\n---\nv:_!%79!int_'1'" --- PASS: TestUnmarshalErrors (0.02s) --- PASS: TestUnmarshalErrors/test_0:_"\nv:_!!float_'error'" (0.00s) --- PASS: TestUnmarshalErrors/test_1:_"v:_[A," (0.00s) --- PASS: TestUnmarshalErrors/test_2:_"v:\n-_[A," (0.00s) --- PASS: TestUnmarshalErrors/test_3:_"a:\n-_b:_*," (0.00s) --- PASS: TestUnmarshalErrors/test_4:_"a:_*b\n" (0.00s) --- PASS: TestUnmarshalErrors/test_5:_"a:_&a\n__b:_*a\n" (0.00s) --- PASS: TestUnmarshalErrors/test_6:_"value:_-" (0.00s) --- PASS: TestUnmarshalErrors/test_7:_"a:_!!binary_==" (0.00s) --- PASS: TestUnmarshalErrors/test_8:_"{[.]}" (0.00s) --- PASS: TestUnmarshalErrors/test_9:_"{{.}}" (0.00s) --- PASS: TestUnmarshalErrors/test_10:_"b:_*a\na:_&a_{c:_1}" (0.00s) --- PASS: TestUnmarshalErrors/test_11:_"%TAG_!%79!_tag:yaml.org,2002:\n---\nv:_!%79!int_'1'" (0.00s) === RUN TestDecoderErrors === RUN TestDecoderErrors/test_0:_"\nv:_!!float_'error'" === RUN TestDecoderErrors/test_1:_"v:_[A," === RUN TestDecoderErrors/test_2:_"v:\n-_[A," === RUN TestDecoderErrors/test_3:_"a:\n-_b:_*," === RUN TestDecoderErrors/test_4:_"a:_*b\n" === RUN TestDecoderErrors/test_5:_"a:_&a\n__b:_*a\n" === RUN TestDecoderErrors/test_6:_"value:_-" === RUN TestDecoderErrors/test_7:_"a:_!!binary_==" === RUN TestDecoderErrors/test_8:_"{[.]}" === RUN TestDecoderErrors/test_9:_"{{.}}" === RUN TestDecoderErrors/test_10:_"b:_*a\na:_&a_{c:_1}" === RUN TestDecoderErrors/test_11:_"%TAG_!%79!_tag:yaml.org,2002:\n---\nv:_!%79!int_'1'" --- PASS: TestDecoderErrors (0.01s) --- PASS: TestDecoderErrors/test_0:_"\nv:_!!float_'error'" (0.00s) --- PASS: TestDecoderErrors/test_1:_"v:_[A," (0.00s) --- PASS: TestDecoderErrors/test_2:_"v:\n-_[A," (0.00s) --- PASS: TestDecoderErrors/test_3:_"a:\n-_b:_*," (0.00s) --- PASS: TestDecoderErrors/test_4:_"a:_*b\n" (0.00s) --- PASS: TestDecoderErrors/test_5:_"a:_&a\n__b:_*a\n" (0.00s) --- PASS: TestDecoderErrors/test_6:_"value:_-" (0.00s) --- PASS: TestDecoderErrors/test_7:_"a:_!!binary_==" (0.00s) --- PASS: TestDecoderErrors/test_8:_"{[.]}" (0.00s) --- PASS: TestDecoderErrors/test_9:_"{{.}}" (0.00s) --- PASS: TestDecoderErrors/test_10:_"b:_*a\na:_&a_{c:_1}" (0.00s) --- PASS: TestDecoderErrors/test_11:_"%TAG_!%79!_tag:yaml.org,2002:\n---\nv:_!%79!int_'1'" (0.00s) === RUN TestFiles === RUN TestFiles/merge --- PASS: TestFiles (0.01s) --- PASS: TestFiles/merge (0.01s) === RUN TestFuzzCrashers --- PASS: TestFuzzCrashers (0.00s) PASS ok cuelang.org/go/internal/third_party/yaml 0.465s ? cuelang.org/go/internal/types [no test files] ? cuelang.org/go/internal/value [no test files] ? cuelang.org/go/pkg [no test files] === RUN TestBuiltin === RUN TestBuiltin/hmac --- PASS: TestBuiltin (0.06s) --- PASS: TestBuiltin/hmac (0.05s) PASS ok cuelang.org/go/pkg/crypto/hmac 0.413s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.04s) PASS ok cuelang.org/go/pkg/crypto/md5 0.365s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.04s) PASS ok cuelang.org/go/pkg/crypto/sha1 0.432s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.05s) PASS ok cuelang.org/go/pkg/crypto/sha256 0.374s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.04s) PASS ok cuelang.org/go/pkg/crypto/sha512 0.385s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.06s) --- PASS: TestBuiltin/gen (0.06s) PASS ok cuelang.org/go/pkg/encoding/base64 0.388s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.06s) --- PASS: TestBuiltin/gen (0.06s) PASS ok cuelang.org/go/pkg/encoding/csv 0.393s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.04s) PASS ok cuelang.org/go/pkg/encoding/hex 0.372s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.10s) --- PASS: TestBuiltin/gen (0.09s) PASS ok cuelang.org/go/pkg/encoding/json 0.463s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.10s) --- PASS: TestBuiltin/gen (0.09s) PASS ok cuelang.org/go/pkg/encoding/yaml 0.423s ? cuelang.org/go/pkg/gen [no test files] ? cuelang.org/go/pkg/html [no test files] ? cuelang.org/go/pkg/internal [no test files] ? cuelang.org/go/pkg/internal/builtintest [no test files] === RUN TestBuiltin === RUN TestBuiltin/gen === RUN TestBuiltin/issues === RUN TestBuiltin/list === RUN TestBuiltin/sort --- PASS: TestBuiltin (0.28s) --- PASS: TestBuiltin/gen (0.14s) --- PASS: TestBuiltin/issues (0.06s) --- PASS: TestBuiltin/list (0.03s) --- PASS: TestBuiltin/sort (0.03s) PASS ok cuelang.org/go/pkg/list 0.709s === RUN TestBuiltin === RUN TestBuiltin/gen === RUN TestBuiltin/issue418 === RUN TestBuiltin/round --- PASS: TestBuiltin (0.15s) --- PASS: TestBuiltin/gen (0.12s) --- PASS: TestBuiltin/issue418 (0.01s) --- PASS: TestBuiltin/round (0.01s) PASS ok cuelang.org/go/pkg/math 0.529s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.04s) PASS ok cuelang.org/go/pkg/math/bits 0.404s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.07s) --- PASS: TestBuiltin/gen (0.06s) PASS ok cuelang.org/go/pkg/net 0.407s === RUN TestMatch --- PASS: TestMatch (0.00s) === RUN TestClean path_test.go:125: skipping AllocsPerRun checks; GOMAXPROCS>1 --- PASS: TestClean (0.00s) === RUN TestFromAndToSlash --- PASS: TestFromAndToSlash (0.00s) === RUN TestSplitList --- PASS: TestSplitList (0.00s) === RUN TestSplit --- PASS: TestSplit (0.00s) === RUN TestJoin --- PASS: TestJoin (0.00s) === RUN TestExt --- PASS: TestExt (0.00s) === RUN TestBase --- PASS: TestBase (0.00s) === RUN TestDir --- PASS: TestDir (0.00s) === RUN TestIsAbs --- PASS: TestIsAbs (0.00s) === RUN TestRel --- PASS: TestRel (0.00s) === RUN TestVolumeName --- PASS: TestVolumeName (0.00s) === RUN TestBuiltin === RUN TestBuiltin/error === RUN TestBuiltin/join === RUN TestBuiltin/os --- PASS: TestBuiltin (0.22s) --- PASS: TestBuiltin/error (0.05s) --- PASS: TestBuiltin/join (0.03s) --- PASS: TestBuiltin/os (0.15s) === RUN ExampleSplitList --- PASS: ExampleSplitList (0.00s) === RUN ExampleRel --- PASS: ExampleRel (0.00s) === RUN ExampleSplit --- PASS: ExampleSplit (0.00s) === RUN ExampleJoin --- PASS: ExampleJoin (0.00s) === RUN ExampleMatch --- PASS: ExampleMatch (0.00s) === RUN ExampleBase --- PASS: ExampleBase (0.00s) === RUN ExampleDir --- PASS: ExampleDir (0.00s) === RUN ExampleIsAbs --- PASS: ExampleIsAbs (0.00s) === RUN ExampleExt --- PASS: ExampleExt (0.00s) PASS ok cuelang.org/go/pkg/path 0.451s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.10s) --- PASS: TestBuiltin/gen (0.08s) PASS ok cuelang.org/go/pkg/regexp 0.441s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.08s) --- PASS: TestBuiltin/gen (0.07s) PASS ok cuelang.org/go/pkg/strconv 0.458s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.07s) --- PASS: TestBuiltin/gen (0.07s) PASS ok cuelang.org/go/pkg/strings 0.403s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.07s) --- PASS: TestBuiltin/gen (0.07s) PASS ok cuelang.org/go/pkg/struct 0.416s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.04s) --- PASS: TestBuiltin/gen (0.03s) PASS ok cuelang.org/go/pkg/text/tabwriter 0.354s === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/gen (0.04s) PASS ok cuelang.org/go/pkg/text/template 0.371s === RUN TestDuration === RUN TestDuration/1.0s === RUN TestDuration/1000.0s === RUN TestDuration/1000.000001s === RUN TestDuration/.000001s === RUN TestDuration/4h2m === RUN TestDuration/5d2h --- PASS: TestDuration (0.00s) --- PASS: TestDuration/1.0s (0.00s) --- PASS: TestDuration/1000.0s (0.00s) --- PASS: TestDuration/1000.000001s (0.00s) --- PASS: TestDuration/.000001s (0.00s) --- PASS: TestDuration/4h2m (0.00s) --- PASS: TestDuration/5d2h (0.00s) === RUN TestParseDuration === RUN TestParseDuration/3h2m === RUN TestParseDuration/5s === RUN TestParseDuration/5d --- PASS: TestParseDuration (0.00s) --- PASS: TestParseDuration/3h2m (0.00s) --- PASS: TestParseDuration/5s (0.00s) --- PASS: TestParseDuration/5d (0.00s) === RUN TestTimestamp === RUN TestTimestamp/null === RUN TestTimestamp/"2019-01-02T15:04:05Z" === RUN TestTimestamp/"2019-01-02T15:04:05-08:00" === RUN TestTimestamp/"2019-01-02T15:04:05.0-08:00" === RUN TestTimestamp/"2019-01-02T15:04:05.01-08:00" === RUN TestTimestamp/"2019-01-02T15:04:05.012345678-08:00" === RUN TestTimestamp/"2019-02-28T15:04:59Z" === RUN TestTimestamp/"2019-01-02T15:04:05" === RUN TestTimestamp/"2019-01-02T15:04:61Z" === RUN TestTimestamp/"2019-01-02T15:60:00Z" === RUN TestTimestamp/"2019-01-02T24:00:00Z" === RUN TestTimestamp/"2019-01-32T23:00:00Z" === RUN TestTimestamp/"2019-01-00T23:00:00Z" === RUN TestTimestamp/"2019-00-15T23:00:00Z" === RUN TestTimestamp/"2019-13-15T23:00:00Z" === RUN TestTimestamp/"2019-01-02T15:04:05Z+08:00" === RUN TestTimestamp/"2019-01-02T15:04:05+08" === RUN TestTimestamp/"2019-01-02T15:04:05.01234567890-08:00" --- PASS: TestTimestamp (0.01s) --- PASS: TestTimestamp/null (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05Z" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05-08:00" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05.0-08:00" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05.01-08:00" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05.012345678-08:00" (0.00s) --- PASS: TestTimestamp/"2019-02-28T15:04:59Z" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:61Z" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:60:00Z" (0.00s) --- PASS: TestTimestamp/"2019-01-02T24:00:00Z" (0.00s) --- PASS: TestTimestamp/"2019-01-32T23:00:00Z" (0.00s) --- PASS: TestTimestamp/"2019-01-00T23:00:00Z" (0.00s) --- PASS: TestTimestamp/"2019-00-15T23:00:00Z" (0.00s) --- PASS: TestTimestamp/"2019-13-15T23:00:00Z" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05Z+08:00" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05+08" (0.00s) --- PASS: TestTimestamp/"2019-01-02T15:04:05.01234567890-08:00" (0.00s) === RUN TestUnix === RUN TestUnix/1970-01-01T00:00:00Z === RUN TestUnix/2017-07-14T02:40:00.000123456Z --- PASS: TestUnix (0.00s) --- PASS: TestUnix/1970-01-01T00:00:00Z (0.00s) --- PASS: TestUnix/2017-07-14T02:40:00.000123456Z (0.00s) === RUN TestBuiltin === RUN TestBuiltin/gen --- PASS: TestBuiltin (0.04s) --- PASS: TestBuiltin/gen (0.03s) PASS ok cuelang.org/go/pkg/time 0.254s ? cuelang.org/go/pkg/tool [no test files] ? cuelang.org/go/pkg/tool/cli [no test files] === RUN TestEnv === RUN TestEnv/#00 === RUN TestEnv/#01 --- PASS: TestEnv (0.04s) --- PASS: TestEnv/#00 (0.03s) --- PASS: TestEnv/#01 (0.00s) PASS ok cuelang.org/go/pkg/tool/exec 0.264s === RUN TestRead --- PASS: TestRead (0.03s) === RUN TestAppend --- PASS: TestAppend (0.00s) === RUN TestCreate --- PASS: TestCreate (0.00s) === RUN TestGlob --- PASS: TestGlob (0.00s) PASS ok cuelang.org/go/pkg/tool/file 0.241s === RUN TestParseHeaders === RUN TestParseHeaders/#00 === RUN TestParseHeaders/#01 === RUN TestParseHeaders/#02 === RUN TestParseHeaders/#03 === RUN TestParseHeaders/#04 === RUN TestParseHeaders/#05 --- PASS: TestParseHeaders (0.04s) --- PASS: TestParseHeaders/#00 (0.01s) --- PASS: TestParseHeaders/#01 (0.01s) --- PASS: TestParseHeaders/#02 (0.00s) --- PASS: TestParseHeaders/#03 (0.00s) --- PASS: TestParseHeaders/#04 (0.00s) --- PASS: TestParseHeaders/#05 (0.00s) PASS ok cuelang.org/go/pkg/tool/http 0.205s === RUN TestGetenv === RUN TestGetenv/expected_unsupported_type_error === RUN TestGetenv/expected_invalid_number_error === RUN TestGetenv/expected_invalid_type === RUN TestGetenv/expected_unsupported_type_error#01 === RUN TestGetenv/expected_invalid_number_error#01 === RUN TestGetenv/expected_invalid_type#01 --- PASS: TestGetenv (0.09s) --- PASS: TestGetenv/expected_unsupported_type_error (0.01s) --- PASS: TestGetenv/expected_invalid_number_error (0.00s) --- PASS: TestGetenv/expected_invalid_type (0.00s) --- PASS: TestGetenv/expected_unsupported_type_error#01 (0.00s) --- PASS: TestGetenv/expected_invalid_number_error#01 (0.00s) --- PASS: TestGetenv/expected_invalid_type#01 (0.00s) PASS ok cuelang.org/go/pkg/tool/os 0.299s === RUN TestBuiltin === RUN TestBuiltin/uuid --- PASS: TestBuiltin (0.05s) --- PASS: TestBuiltin/uuid (0.04s) PASS ok cuelang.org/go/pkg/uuid 0.248s === RUN TestFile === RUN TestFile/rewrite_integer_division === RUN TestFile/referenced_quoted_fields === RUN TestFile/#00 === RUN TestFile/#01 --- PASS: TestFile (0.02s) --- PASS: TestFile/rewrite_integer_division (0.01s) --- PASS: TestFile/referenced_quoted_fields (0.00s) --- PASS: TestFile/#00 (0.00s) --- PASS: TestFile/#01 (0.00s) === RUN TestInstances fixall_test.go:27: --- SKIP: TestInstances (0.00s) PASS ok cuelang.org/go/tools/fix 0.218s === RUN TestIsCyclic === RUN TestIsCyclic/#00 === RUN TestIsCyclic/0 cycle_test.go:72: 0 -> 0 === RUN TestIsCyclic/1;_0 cycle_test.go:72: 0 -> 1 cycle_test.go:72: 1 -> 0 === RUN TestIsCyclic/1;_2;_3;_4; cycle_test.go:72: 0 -> 1 cycle_test.go:72: 1 -> 2 cycle_test.go:72: 2 -> 3 cycle_test.go:72: 3 -> 4 === RUN TestIsCyclic/1;_2;_;_4;_5;_ cycle_test.go:72: 0 -> 1 cycle_test.go:72: 1 -> 2 cycle_test.go:72: 3 -> 4 cycle_test.go:72: 4 -> 5 === RUN TestIsCyclic/1;_2;_3;_4;_0 cycle_test.go:72: 0 -> 1 cycle_test.go:72: 1 -> 2 cycle_test.go:72: 2 -> 3 cycle_test.go:72: 3 -> 4 cycle_test.go:72: 4 -> 0 === RUN TestIsCyclic/1,2,3,4;_2,3,4;_3,4;_4; cycle_test.go:72: 0 -> 1 cycle_test.go:72: 0 -> 2 cycle_test.go:72: 0 -> 3 cycle_test.go:72: 0 -> 4 cycle_test.go:72: 1 -> 2 cycle_test.go:72: 1 -> 3 cycle_test.go:72: 1 -> 4 cycle_test.go:72: 2 -> 3 cycle_test.go:72: 2 -> 4 cycle_test.go:72: 3 -> 4 === RUN TestIsCyclic/;0;0,1;0,1,2;0,1,2,3; cycle_test.go:72: 1 -> 0 cycle_test.go:72: 2 -> 0 cycle_test.go:72: 2 -> 1 cycle_test.go:72: 3 -> 0 cycle_test.go:72: 3 -> 1 cycle_test.go:72: 3 -> 2 cycle_test.go:72: 4 -> 0 cycle_test.go:72: 4 -> 1 cycle_test.go:72: 4 -> 2 cycle_test.go:72: 4 -> 3 === RUN TestIsCyclic/1,2,3,4;_2,3,4;_2;_4; cycle_test.go:72: 0 -> 1 cycle_test.go:72: 0 -> 2 cycle_test.go:72: 0 -> 3 cycle_test.go:72: 0 -> 4 cycle_test.go:72: 1 -> 2 cycle_test.go:72: 1 -> 3 cycle_test.go:72: 1 -> 4 cycle_test.go:72: 2 -> 2 cycle_test.go:72: 3 -> 4 --- PASS: TestIsCyclic (0.01s) --- PASS: TestIsCyclic/#00 (0.00s) --- PASS: TestIsCyclic/0 (0.00s) --- PASS: TestIsCyclic/1;_0 (0.00s) --- PASS: TestIsCyclic/1;_2;_3;_4; (0.00s) --- PASS: TestIsCyclic/1;_2;_;_4;_5;_ (0.00s) --- PASS: TestIsCyclic/1;_2;_3;_4;_0 (0.00s) --- PASS: TestIsCyclic/1,2,3,4;_2,3,4;_3,4;_4; (0.00s) --- PASS: TestIsCyclic/;0;0,1;0,1,2;0,1,2,3; (0.00s) --- PASS: TestIsCyclic/1,2,3,4;_2,3,4;_2;_4; (0.00s) === RUN TestFlow === RUN TestFlow/concrete === RUN TestFlow/cycle === RUN TestFlow/dep === RUN TestFlow/dynamic === RUN TestFlow/failure === RUN TestFlow/infer === RUN TestFlow/par === RUN TestFlow/pkg === RUN TestFlow/simple === RUN TestFlow/template --- PASS: TestFlow (0.46s) --- PASS: TestFlow/concrete (0.03s) --- PASS: TestFlow/cycle (0.00s) --- PASS: TestFlow/dep (0.02s) --- PASS: TestFlow/dynamic (0.04s) --- PASS: TestFlow/failure (0.00s) --- PASS: TestFlow/infer (0.00s) --- PASS: TestFlow/par (0.01s) --- PASS: TestFlow/pkg (0.34s) --- PASS: TestFlow/simple (0.00s) --- PASS: TestFlow/template (0.01s) === RUN TestX flow_test.go:197: --- SKIP: TestX (0.00s) === RUN Example --- PASS: Example (0.00s) PASS ok cuelang.org/go/tools/flow 0.680s === RUN TestFiles === RUN TestFiles/optional_does_not_remove_required === RUN TestFiles/defaults_can_remove_non-defaults === RUN TestFiles/remove_top-level_struct === RUN TestFiles/do_not_remove_field === RUN TestFiles/issue303 === RUN TestFiles/remove_due_to_simplification === RUN TestFiles/list_removal === RUN TestFiles/list_removal#01 === RUN TestFiles/do_not_overmark_comprehension === RUN TestFiles/remove_implied_interpolations --- PASS: TestFiles (0.05s) --- PASS: TestFiles/optional_does_not_remove_required (0.02s) --- PASS: TestFiles/defaults_can_remove_non-defaults (0.00s) --- PASS: TestFiles/remove_top-level_struct (0.01s) --- PASS: TestFiles/do_not_remove_field (0.00s) --- PASS: TestFiles/issue303 (0.00s) --- PASS: TestFiles/remove_due_to_simplification (0.00s) --- PASS: TestFiles/list_removal (0.00s) --- PASS: TestFiles/list_removal#01 (0.00s) --- PASS: TestFiles/do_not_overmark_comprehension (0.00s) --- PASS: TestFiles/remove_implied_interpolations (0.00s) === RUN TestData === RUN TestData/constraintroots === RUN TestData/defaults === RUN TestData/definitions === RUN TestData/empty === RUN TestData/kube1 === RUN TestData/listaccept === RUN TestData/optional === RUN TestData/rmimport === RUN TestData/shared --- PASS: TestData (0.38s) --- PASS: TestData/constraintroots (0.01s) --- PASS: TestData/defaults (0.01s) --- PASS: TestData/definitions (0.00s) --- PASS: TestData/empty (0.00s) --- PASS: TestData/kube1 (0.03s) --- PASS: TestData/listaccept (0.00s) --- PASS: TestData/optional (0.00s) --- PASS: TestData/rmimport (0.31s) --- PASS: TestData/shared (0.01s) === RUN TestX trim_test.go:323: --- SKIP: TestX (0.00s) PASS ok cuelang.org/go/tools/trim 0.629s FAIL ==> ERROR: A failure occurred in check().  Aborting...