diff --git a/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-merged-default-compatible.test.yaml b/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-merged-default-compatible.test.yaml index 486a508f..e39d45f2 100644 --- a/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-merged-default-compatible.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-merged-default-compatible.test.yaml @@ -15,10 +15,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LEN:3", "SUM:6"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LEN:{{ len(Param.Values) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-supplied-value-within-constraints.test.yaml b/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-supplied-value-within-constraints.test.yaml index e557fdc1..e3b95ed9 100644 --- a/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-supplied-value-within-constraints.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/2.13--list-int-supplied-value-within-constraints.test.yaml @@ -16,10 +16,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LEN:3", "SUM:15"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LEN:{{ len(Param.Values) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/2.16--list-list-int-param-runtime.test.yaml b/conformance-tests/2023-09/EXPR/jobs/2.16--list-list-int-param-runtime.test.yaml index 629dbed9..a263cf53 100644 --- a/conformance-tests/2023-09/EXPR/jobs/2.16--list-list-int-param-runtime.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/2.16--list-list-int-param-runtime.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LEN:3", "ROW0:[1, 2]", "ELEM:3", "FLAT:[1, 2, 3, 4, 5, 6]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LEN:{{ len(Param.Matrix) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/2.9--bool-param-runtime.test.yaml b/conformance-tests/2023-09/EXPR/jobs/2.9--bool-param-runtime.test.yaml index ffe98996..78719337 100644 --- a/conformance-tests/2023-09/EXPR/jobs/2.9--bool-param-runtime.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/2.9--bool-param-runtime.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["GPU:yes", "DEBUG:no", "NOT:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'GPU:{{ "yes" if Param.UseGpu else "no" }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-binding-with-param.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-binding-with-param.test.yaml index 19dfbf3f..0c5a2df7 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-binding-with-param.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-binding-with-param.test.yaml @@ -12,10 +12,21 @@ template: let: - "doubled = Param.X * 2" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUT:10"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUT:{{ doubled }}') expected: diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-env-script-binding.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-env-script-binding.test.yaml index 14ff2c9c..dba028a9 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-env-script-binding.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-env-script-binding.test.yaml @@ -17,10 +17,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ENV:hello"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os; print('ENV:' + os.environ.get('GREETING', '')) expected: diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-in-host-requirements.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-in-host-requirements.test.yaml index a12743a6..56d520d1 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-in-host-requirements.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-in-host-requirements.test.yaml @@ -17,10 +17,21 @@ template: - name: amount.worker.gpu min: "{{ gpu_count }}" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["GPU:1"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'GPU:{{ gpu_count }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-scopes.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-scopes.test.yaml index 9869d208..dca3d229 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-scopes.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-scopes.test.yaml @@ -10,10 +10,21 @@ template: script: let: - "script_val = 20" + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STEP:10", "SCRIPT:20", "SUM:30"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STEP:{{ step_val }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-script-binding.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-script-binding.test.yaml index 2bdb94a6..2e4302e8 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-script-binding.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-script-binding.test.yaml @@ -10,10 +10,21 @@ template: - "x = 1" - "y = x + 1" - "z = y * 3" + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["X:1", "Y:2", "Z:6"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'X:{{ x }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-binding.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-binding.test.yaml index 8122c73b..43b12863 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-binding.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-binding.test.yaml @@ -9,10 +9,21 @@ template: - "base = 100" - "doubled = base * 2" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["BASE:100", "DOUBLED:200"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'BASE:{{ base }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-env-binding.test.yaml b/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-env-binding.test.yaml index 657b6e31..06cbaa1e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-env-binding.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/3.6--let-step-env-binding.test.yaml @@ -19,10 +19,21 @@ template: - -c - "print('openjd_env: MSG={{ combined }}')" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MSG:HELLO_WORLD"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os; print('MSG:' + os.environ.get('MSG', '')) expected: diff --git a/conformance-tests/2023-09/EXPR/jobs/7.3--host-context-symbols.test.yaml b/conformance-tests/2023-09/EXPR/jobs/7.3--host-context-symbols.test.yaml index 0ae86247..f20d8c86 100644 --- a/conformance-tests/2023-09/EXPR/jobs/7.3--host-context-symbols.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/7.3--host-context-symbols.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["WD_LEN:true", "WD_IS_PATH:true", "HAS_PM:false", "HAS_PM_COND:no", "PM_FILE_IS_PATH:.json"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'WD_LEN:{{ len(string(Session.WorkingDirectory)) > 0 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/7.3--task-file-expr-properties.test.yaml b/conformance-tests/2023-09/EXPR/jobs/7.3--task-file-expr-properties.test.yaml index 49fe274a..53d66d4e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/7.3--task-file-expr-properties.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/7.3--task-file-expr-properties.test.yaml @@ -11,6 +11,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["EXISTS:True", "CONTENT:greeting=hello", "HAS_PARENT:true"]} - name: config type: TEXT data: "greeting={{Param.Greeting}}" @@ -21,6 +28,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | import os diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.1.3--keyword-attrs-in-exprs.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.1.3--keyword-attrs-in-exprs.test.yaml index 911bc98f..3853cc9e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.1.3--keyword-attrs-in-exprs.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.1.3--keyword-attrs-in-exprs.test.yaml @@ -129,10 +129,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["False:v_False", "None:v_None", "True:v_True", "and:v_and", "as:v_as", "assert:v_assert", "async:v_async", "await:v_await", "break:v_break", "class:v_class", "continue:v_continue", "def:v_def", "del:v_del", "elif:v_elif", "else:v_else", "except:v_except", "finally:v_finally", "for:v_for", "from:v_from", "global:v_global", "if:v_if", "import:v_import", "in:v_in", "is:v_is", "lambda:v_lambda", "nonlocal:v_nonlocal", "not:v_not", "or:v_or", "pass:v_pass", "raise:v_raise", "return:v_return", "try:v_try", "while:v_while", "with:v_with", "yield:v_yield", "_:v__", "case:v_case", "match:v_match", "type:v_type", "COND:v_if", "LOGIC:v_and"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'False:{{ Param.False }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.1.5--string-literals.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.1.5--string-literals.test.yaml index c615b216..a57ba4a2 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.1.5--string-literals.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.1.5--string-literals.test.yaml @@ -11,10 +11,21 @@ template: - "rtdq = r\"\"\"raw\\ntriple\"\"\"" - "rtsq = r'''raw\\ntriple'''" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["DQ:5", "SQ:5", "RDQ:hello\\n", "RSQ:hello\\n", "RDQ_LEN:7", "RSQ_LEN:7", "ESC_LEN:11", "ESC_T_LEN:3", "ESC_BS:a\\b", "RAW_BS:C:\\Users\\test", "TDQ_LEN:13", "TSQ_LEN:13", "RTDQ:raw\\ntriple", "RTSQ:raw\\ntriple"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'DQ:{{ len("hello") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.1.6--numeric-literals.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.1.6--numeric-literals.test.yaml index b44d3e8a..3a109fcb 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.1.6--numeric-literals.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.1.6--numeric-literals.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["HEX:42", "OCT:42", "BIN:42", "USCORE:1000000", "SCI_PASS:1.5e3", "SCI_NEG_PASS:1.5e-3", "SCI_ADD:1500.0", "SCI_NEG_ADD:0.0015", "SCI_POS:1500.0", "SCI_NEG_POS:0.0015", "HEX_US:65535", "BIN_US:170"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'HEX:{{ 0x2A }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.1.7--multiline.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.1.7--multiline.test.yaml index 5c8edc33..b0105302 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.1.7--multiline.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.1.7--multiline.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ARITH:6", "COND:high", "COMP:[4, 6]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ARITH:{{ 1 + diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.2.3--implicit-coercion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.2.3--implicit-coercion.test.yaml index 33390af0..6d2be88d 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.2.3--implicit-coercion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.2.3--implicit-coercion.test.yaml @@ -10,10 +10,21 @@ template: - 'path_join = [path("/a"), path("/b")].join(",")' - 'path_sw = startswith(path("/mnt/out"), "/mnt")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INTFLOAT:3.5", "PATHSTR:true", "RANGECAT:[10, 20, 1, 2, 3]", "RANGE_STR:1-3", "RANGE_FMT:frames=1-3", "RANGE_ADD:frames: 1-3", "RANGE_ADD2:1-3 are frames", "FMT_EMBED:Count is 3 items", "BOOL_FMT:val=true", "LIST_PATH_STR:/a,/b"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INTFLOAT:{{ 2 + 1.5 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.2.4--function-vs-method-coercion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.2.4--function-vs-method-coercion.test.yaml index 747e8830..57b6a04c 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.2.4--function-vs-method-coercion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.2.4--function-vs-method-coercion.test.yaml @@ -9,10 +9,21 @@ template: - 'func_coerce = startswith(path("/foo/bar"), "/foo")' - 'method_ok = "/foo/bar".startswith("/foo")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["FUNC_COERCE:true", "METHOD_OK:true", "HOST_METHOD:true", "HOST_FUNC:true", "HOST_FUNC_WIN:false"], "expected_windows": ["FUNC_COERCE:true", "METHOD_OK:true", "HOST_METHOD:true", "HOST_FUNC:false", "HOST_FUNC_WIN:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FUNC_COERCE:{{ func_coerce }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.2.5--cross-type-equality.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.2.5--cross-type-equality.test.yaml index 54959627..1fa4936d 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.2.5--cross-type-equality.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.2.5--cross-type-equality.test.yaml @@ -8,10 +8,21 @@ template: let: - 'r = range_expr("1-3")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["LIST_RANGE:true", "RANGE_LIST:true", "SCALAR_LIST:false", "ELEM_CROSS:true", "NESTED_CROSS:true", "BOOL_INT:false", "BOOL_STR:false", "STR_INT:false", "NULL_ZERO:false", "NULL_NULL:true", "LIST_DIFF_LEN:false", "STR_PATH:true", "PATH_STR:true"], "expected_windows": ["LIST_RANGE:true", "RANGE_LIST:true", "SCALAR_LIST:false", "ELEM_CROSS:true", "NESTED_CROSS:true", "BOOL_INT:false", "BOOL_STR:false", "STR_INT:false", "NULL_ZERO:false", "NULL_NULL:true", "LIST_DIFF_LEN:false", "STR_PATH:false", "PATH_STR:false"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LIST_RANGE:{{ [1, 2, 3] == range_expr("1-3") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.2.6--list-type-inference.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.2.6--list-type-inference.test.yaml index 54b5e21b..abb16456 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.2.6--list-type-inference.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.2.6--list-type-inference.test.yaml @@ -23,10 +23,21 @@ template: - 'nested_mix_int_float = [[1], [2.0]]' - 'nested_mix_path_str = [[path("/a")], ["b"]]' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["HOMO_INT:[1, 2, 3]", "HOMO_FLOAT:[1.0, 2.0]", "HOMO_STR:[\"a\", \"b\"]", "MIX_INT_FLOAT:[1.0, 2.0]", "MIX_PATH_STR:[\"/a\", \"b\"]", "EMPTY:[]", "NESTED_INT:[[1, 2], [3, 4]]", "NESTED_FLOAT:[[1.0, 2.0], [3.0, 4.0]]", "NESTED_STR:[[\"a\", \"b\"], [\"c\"]]", "NESTED_MIX_INT_FLOAT:[[1.0], [2.0]]", "NESTED_MIX_PATH_STR:[[\"/a\"], [\"b\"]]", "HOMO_PATH:[\"/a\", \"/b\"]", "NESTED_PATH:[[\"/a\"], [\"/b\"]]"], "expected_windows": ["HOMO_INT:[1, 2, 3]", "HOMO_FLOAT:[1.0, 2.0]", "HOMO_STR:[\"a\", \"b\"]", "MIX_INT_FLOAT:[1.0, 2.0]", "MIX_PATH_STR:[\"/a\", \"b\"]", "EMPTY:[]", "NESTED_INT:[[1, 2], [3, 4]]", "NESTED_FLOAT:[[1.0, 2.0], [3.0, 4.0]]", "NESTED_STR:[[\"a\", \"b\"], [\"c\"]]", "NESTED_MIX_INT_FLOAT:[[1.0], [2.0]]", "NESTED_MIX_PATH_STR:[[\"/a\"], [\"b\"]]", "HOMO_PATH:[\"\\a\", \"\\b\"]", "NESTED_PATH:[[\"\\a\"], [\"\\b\"]]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'HOMO_INT:{{ homo_int }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-describes-result-not-computation.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-describes-result-not-computation.test.yaml index e51c4b18..9c511b13 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-describes-result-not-computation.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-describes-result-not-computation.test.yaml @@ -24,10 +24,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ARGS:2,10,SEP,2,10,SEP,2"], "forbidden": ["ARGS:10,2"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | import sys diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-type-propagation.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-type-propagation.test.yaml index 0d5d23ff..1a1c6e03 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-type-propagation.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.1--target-type-propagation.test.yaml @@ -27,10 +27,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["BINOP_SUB:9", "BINOP_MUL:20", "BINOP_DIV:2.5", "UNARY_NEG:-10", "UNARY_NOT:false", "CMP_GT:true", "CMP_LE:true", "IFEXP:big", "CHAIN:over"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | # BinOp operands must keep their numeric types diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.10--string-path-operation-counting.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.10--string-path-operation-counting.test.yaml index 9c355648..000993c9 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.10--string-path-operation-counting.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.10--string-path-operation-counting.test.yaml @@ -20,10 +20,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:117600"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - "print(r'RESULT:{{ len([len((\"a\" * 10000).upper()) for i in range(117600)]) }}')" expected: diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--format-string-semantics.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--format-string-semantics.test.yaml index 4aa1d165..2c0bf7ea 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--format-string-semantics.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--format-string-semantics.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ARGS:--input file.exr --verbose --quality 90 'prefix 42 suffix' 'list: [1, 2, 3]' null:end"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | import shlex, sys diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--list-flattens-in-args.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--list-flattens-in-args.test.yaml index 70722f7c..3312dcab 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--list-flattens-in-args.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--list-flattens-in-args.test.yaml @@ -18,10 +18,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ARG0:--width", "ARG1:1920", "ARG2:--height", "ARG3:1080", "ARG4:--verbose", "ARG5:--color", "ARG6:--single", "ARG7:--debug", "ARG8:on", "ARG9:--end", "COUNT:10"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | import sys diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--null-skips-arg.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--null-skips-arg.test.yaml index 94fbe539..0083a5be 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--null-skips-arg.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--null-skips-arg.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ARGS:--input file.exr"], "forbidden": ["--verbose", "--quality"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | import sys diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--scalar-string-coercion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--scalar-string-coercion.test.yaml index 1c0db619..1669107b 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--scalar-string-coercion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.2--scalar-string-coercion.test.yaml @@ -20,10 +20,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["BOOL_PARAM:true", "BOOL_FALSE:false", "BOOL_LITERAL:true", "NEGATION:false", "NULL:[]", "FLOAT:1.50"], "forbidden": ["BOOL_PARAM:True", "BOOL_FALSE:False", "NULL:[None]", "NULL:[null]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'BOOL_PARAM:{{ Param.Enabled }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.3--ufcs.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.3--ufcs.test.yaml index 6f72b4c8..33ff660c 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.3--ufcs.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.3--ufcs.test.yaml @@ -14,10 +14,21 @@ template: - 'file = path("/projects/shot01/render.exr")' - 'prop = file.stem' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FUNC:HELLO", "METHOD:HELLO", "CHAINED:a;b;c", "PROP:render"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FUNC:{{ func_upper }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--float-passthrough.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--float-passthrough.test.yaml index b80c8f75..1ff235c3 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--float-passthrough.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--float-passthrough.test.yaml @@ -13,10 +13,21 @@ template: - "from_let = 1.30" - "from_list = [1.70]" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["PARAM:3.500", "PARAM_CALC:4.5", "LET:1.30", "LIST_IDX:1.70", "IF_TRUE:3.500", "IF_FALSE:3.500"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'PARAM:{{Param.V}}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--negative-zero.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--negative-zero.test.yaml index a1b93e53..671b7a13 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--negative-zero.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.4--negative-zero.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["NEG_ZERO:0.0", "NEG_MUL:0.0", "ABS:0.0", "EQ:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'NEG_ZERO:{{ -0.0 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.5--conditionals.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.5--conditionals.test.yaml index e620d078..dc2f275f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.5--conditionals.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.5--conditionals.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["TRUE:yes", "FALSE:no", "CALC:20"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'TRUE:{{ "yes" if Param.Flag else "no" }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--comprehensions.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--comprehensions.test.yaml index 30a159f9..7d4824c4 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--comprehensions.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--comprehensions.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["BASIC:[2, 4, 6]", "FILTER:[3, 4, 5]", "RANGE:[10, 20, 30, 40, 50]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'BASIC:{{ [x * 2 for x in [1, 2, 3]] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--loop-var-valid.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--loop-var-valid.test.yaml index 6d5b20b3..fc13f9e1 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--loop-var-valid.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.7--loop-var-valid.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LOWER:[2, 4, 6]", "UNDER:[11, 21]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LOWER:{{ [x * 2 for x in [1, 2, 3]] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr1.3.8--slice-edge-cases.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr1.3.8--slice-edge-cases.test.yaml index 1365103a..984d5429 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr1.3.8--slice-edge-cases.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr1.3.8--slice-edge-cases.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["CLAMP:[1, 2, 3]", "NEG_STEP:[5, 4, 3]", "NEG_FULL:dcb"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'CLAMP:{{ [1, 2, 3][0:100] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--division.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--division.test.yaml index f4b5a240..dbeaa6cb 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--division.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--division.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["TRUEDIV:3.5", "FLOORDIV:3", "EXACT:3.0", "FFLOORDIV:3"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'TRUEDIV:{{ 7 / 2 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--exponentiation.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--exponentiation.test.yaml index 73350fc4..510902e4 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--exponentiation.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--exponentiation.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["POSEXP:8", "NEGEXP:0.125", "FEXP:8.0", "ZEROEXP:1", "ZEROF:1.0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'POSEXP:{{ 2 ** 3 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--float-arithmetic.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--float-arithmetic.test.yaml index 8bcf2a04..765cb61f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--float-arithmetic.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--float-arithmetic.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FADD:4.0", "PROMOTE:3.5", "FSUB:3.5", "FMUL:3.0", "FMOD:1.5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FADD:{{ 1.5 + 2.5 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int-arithmetic.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int-arithmetic.test.yaml index 87a97377..9e8e7010 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int-arithmetic.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int-arithmetic.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ADD:13", "SUB:7", "MUL:30", "FLOORDIV:3", "MOD:1", "NEG:-10", "POS:10"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ADD:{{ Param.X + 3 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-bounds.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-bounds.test.yaml index 0b689751..a69fcd03 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-bounds.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-bounds.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MIN:-9223372036854775808", "MAX:9223372036854775807", "SUM:-1"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'MIN:{{ -9223372036854775808 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-float-large.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-float-large.test.yaml index 9789e104..2952b6ac 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-float-large.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.1--int64-float-large.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["POS:9223372036854775808.0", "NEG:-9.223372036854776e+18"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'POS:{{ 9223372036854775808.0 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.2--string-ops.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.2--string-ops.test.yaml index 896baa30..a25face7 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.2--string-ops.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.2--string-ops.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["CONCAT:hello world", "REPEAT:ababab", "REPEAT0:0 chars", "IN:true", "NOTIN:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'CONCAT:{{ "hello" + " world" }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.3--list-ops.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.3--list-ops.test.yaml index d1c80e6f..6db0718f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.3--list-ops.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.3--list-ops.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["CONCAT:[1, 2, 3, 4]", "INTFLOAT:[1.0, 2.0, 3.0, 4.0]", "REPEAT:[1, 2, 1, 2]", "REPEAT0:[]", "IN:true", "NOTIN:true", "RANGE_IN:true", "RANGE_NOTIN:true", "RANGE_RANGE:[1, 2, 3, 7, 8, 9]", "EMPTY_CONCAT:[1, 2]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'CONCAT:{{ [1, 2] + [3, 4] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.4--comparisons.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.4--comparisons.test.yaml index fff9ec00..7427c231 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.4--comparisons.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.4--comparisons.test.yaml @@ -9,10 +9,21 @@ template: - 'path_lt = path("/a") < path("/b")' - 'path_eq = path("/a") == path("/a")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["EQ:true", "NE:true", "LT:true", "GT:true", "LE:true", "GE:true", "LE2:true", "GE2:true", "INTFLOAT:true", "BOOLINT:false", "STRINT:false", "CHAIN:true", "STREQ:true", "STRLT:true", "LISTEQ:true", "LISTNE:false", "LISTLT:true", "LISTLEN:true", "BOOL_ORD:true", "PATH_LT:true", "PATH_EQ:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'EQ:{{ 5 == 5 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-host-context.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-host-context.test.yaml index 5b996062..5deaca11 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-host-context.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-host-context.test.yaml @@ -10,10 +10,21 @@ template: - 'posix_rel = path("sub/file.exr")' - 'posix_joined = path("/mnt/output") / "sub" / "file.exr"' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["AS_POSIX:/mnt/renders/scene.exr", "HOST_POSIX_ABS:/mnt/renders/scene.exr", "HOST_REL:sub/file.exr", "HOST_JOIN:/mnt/output/sub/file.exr", "HOST_WIN_ABS:D:/renders/scene.exr", "HOST_PARENT:/mnt/renders", "LET_ABS:/mnt/renders/scene.exr", "LET_REL:sub/file.exr", "LET_JOINED:/mnt/output/sub/file.exr"], "expected_windows": ["AS_POSIX:/mnt/renders/scene.exr", "HOST_POSIX_ABS:\\mnt\\renders\\scene.exr", "HOST_REL:sub\\file.exr", "HOST_JOIN:\\mnt\\output\\sub\\file.exr", "HOST_WIN_ABS:D:\\renders\\scene.exr", "HOST_PARENT:\\mnt\\renders", "LET_ABS:\\mnt\\renders\\scene.exr", "LET_REL:sub\\file.exr", "LET_JOINED:\\mnt\\output\\sub\\file.exr"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'HOST_POSIX_ABS:{{ path("/mnt/renders/scene.exr") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-ops.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-ops.test.yaml index 56c574a3..ec3a1599 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-ops.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.5--path-ops.test.yaml @@ -15,10 +15,21 @@ template: - 'abs_posix = abs_replace.as_posix()' - 'pp_posix = path_path.as_posix()' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["JOIN:/mnt/output/renders/scene.exr", "APPEND:/mnt/output/base.txt", "ABS_REPLACE:/other/path", "PATH_PATH:/mnt/sub/dir"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'JOIN:{{ joined_posix }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--and-or-value-returning.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--and-or-value-returning.test.yaml index 8354a375..217d2b4d 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--and-or-value-returning.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--and-or-value-returning.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OR_NULL:fallback", "OR_FALSE:fallback", "OR_STR:hello", "OR_ZERO:0", "OR_EMPTY:[]", "AND_NULL:[]", "AND_TRUE:hello", "AND_STR:world", "BOOL:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'OR_NULL:{{ null or "fallback" }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--logical-ops.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--logical-ops.test.yaml index 07656e31..a504c9f1 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--logical-ops.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.6--logical-ops.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["AND:true", "ANDFALSE:false", "OR:true", "ORFALSE:false", "NOT:true", "SHORT:false", "SHORT_OR:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'AND:{{ true and true }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.7--indexing.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.7--indexing.test.yaml index 47de5343..f2aaa2ef 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.7--indexing.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.7--indexing.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LIST:20", "NEG:30", "STR:h", "STR_NEG:o", "RANGE:7"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LIST:{{ [10, 20, 30][1] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.1.8--slicing.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.1.8--slicing.test.yaml index f72ec308..326adbf8 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.1.8--slicing.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.1.8--slicing.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LSLICE:[20, 30, 40]", "REV:[3, 2, 1]", "SSLICE:ell", "RSLICE:2,3", "RREV:[5, 4, 3, 2, 1]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LSLICE:{{ [10, 20, 30, 40, 50][1:4] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--bool-conversion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--bool-conversion.test.yaml index 8bb2a32b..f1bf70ed 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--bool-conversion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--bool-conversion.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT1:true", "INT0:false", "FLOAT1:true", "FLOAT0:false", "PASS:true", "NULL:false", "TRUE:true", "FALSE:false", "YES:true", "NO:false", "ON:true", "OFF:false"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT1:{{ bool(1) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--float-conversion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--float-conversion.test.yaml index 37d98dc8..02306786 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--float-conversion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--float-conversion.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT:3.0", "STR:2.5", "STR_INT:42.0", "SCI:1500.0", "SCI_NEG:0.25", "LEADING:2.5", "TRAILING:2.5", "BOTH:2.5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT:{{ float(3) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--int-conversion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--int-conversion.test.yaml index 47968496..32e8c1f7 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--int-conversion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--int-conversion.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FLOAT:3", "STR:42", "SCI:100", "NEG:-5", "STR_NEG:-7", "LEADING:42", "TRAILING:42", "BOTH:42"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FLOAT:{{ int(3.0) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--len.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--len.test.yaml index e5a88524..a8b4a9f0 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--len.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--len.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["LIST:3", "STR:5", "RANGE:5", "PATH:8"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'LIST:{{ len([10, 20, 30]) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--list-from-range-expr.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--list-from-range-expr.test.yaml index 4f0da9ff..b15adb9e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--list-from-range-expr.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--list-from-range-expr.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SIMPLE:[1, 2, 3]", "STEP:[1, 3, 5, 7, 9]", "DESC:[1, 2, 3, 4, 5]", "VALUES:[2, 6, 9]", "MIXED:[1, 2, 3, 10, 20, 21, 22]", "FROM_LIST:[1, 2, 3]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SIMPLE:{{ list(range_expr("1-3")) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--range-expr-conversion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--range-expr-conversion.test.yaml index 2fb6bfe8..f8d6e2e1 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--range-expr-conversion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--range-expr-conversion.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STR:1-3", "LIST:1-3", "STEP:1-9:2", "DESC:1-5", "VALUES:2,6,9", "MIXED:1-3,10,20-22", "COMPLEX:-2,-1,3-5,7-9,12,100"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STR:{{ range_expr("1-3") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--string-conversion.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--string-conversion.test.yaml index 60368621..4c995dc1 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--string-conversion.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.1--string-conversion.test.yaml @@ -9,10 +9,21 @@ template: let: - 'from_path = string(path("/mnt/out"))' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT:42", "FLOAT:3.14", "BOOL_T:true", "BOOL_F:false", "STR:hello", "NULL:null", "PATH:/mnt/out", "RANGE:1-5", "LIST:[1, 2, 3]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT:{{ string(42) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--abs.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--abs.test.yaml index e6bacc46..15f6179c 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--abs.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--abs.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT:5", "FLOAT:3.14", "POS:5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT:{{ abs(-5) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--floor-ceil.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--floor-ceil.test.yaml index b1b64f84..6412598e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--floor-ceil.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--floor-ceil.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FLOOR:3", "CEIL:4", "FLOOR_NEG:-4", "CEIL_NEG:-3", "FLOOR_INT:5", "CEIL_INT:5", "FLOOR_EXACT:4", "CEIL_EXACT:4"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FLOOR:{{ floor(3.7) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--max.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--max.test.yaml index 6196d238..39072d5f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--max.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--max.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["TWO:3", "THREE:3", "LIST:8", "RANGE:7", "FLOAT:2.5", "MIXED:2.5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'TWO:{{ max(3, 1) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--min.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--min.test.yaml index 8a65bc50..f61b11bb 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--min.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--min.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["TWO:1", "THREE:1", "LIST:2", "RANGE:3", "MIXED:1.0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'TWO:{{ min(3, 1) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round-bankers.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round-bankers.test.yaml index bc5ae1b6..7d9cff25 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round-bankers.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round-bankers.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["R0:0", "R1:2", "R2:2"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'R0:{{ round(0.5) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round.test.yaml index 7fad5df9..4788992f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--round.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["HALF_EVEN:2", "HALF_EVEN2:4", "NEG_HALF_EVEN:-2", "NEG_HALF_EVEN2:-4", "DIGITS:3.14", "TRAILING:3.50", "TENS:1230", "HUNDREDS:1200", "ZERO_NDIGITS:4", "INT_NDIGITS:5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'HALF_EVEN:{{ round(2.5) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--sum.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--sum.test.yaml index ab086189..f8824859 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--sum.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.2--sum.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT_LIST:6", "EMPTY:0", "RANGE:15", "FLOAT_LIST:7.0", "SINGLE:42", "NEGATIVE:0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT_LIST:{{ sum([1, 2, 3]) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--any-all.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--any-all.test.yaml index bf028793..18da47fa 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--any-all.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--any-all.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ANY_T:true", "ANY_F:false", "ANY_EMPTY:false", "ALL_T:true", "ALL_F:false", "ALL_EMPTY:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ANY_T:{{ any([false, true]) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--flatten.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--flatten.test.yaml index ccf32293..bcc4b2bf 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--flatten.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--flatten.test.yaml @@ -9,10 +9,21 @@ template: let: - 'paths = flatten([[path("/a"), path("/b")], [path("/c")]])' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["INT:[1, 2, 3]", "STR:[\"a\", \"b\", \"c\"]", "SINGLES:[1, 2, 3]", "MIXED_LEN:[1, 2, 3]", "EMPTY:[]", "FLAT_INT:[1, 2, 3]", "FLAT_STR:[\"a\", \"b\"]", "PATH:[\"/a\", \"/b\", \"/c\"]"], "expected_windows": ["INT:[1, 2, 3]", "STR:[\"a\", \"b\", \"c\"]", "SINGLES:[1, 2, 3]", "MIXED_LEN:[1, 2, 3]", "EMPTY:[]", "FLAT_INT:[1, 2, 3]", "FLAT_STR:[\"a\", \"b\"]", "PATH:[\"\\a\", \"\\b\", \"\\c\"]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT:{{ flatten([[1, 2], [3]]) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--range.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--range.test.yaml index f7243a60..4b49c604 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--range.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--range.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STOP:[0, 1, 2, 3, 4]", "START_STOP:[1, 2, 3, 4]", "STEP:[0, 2, 4, 6, 8]", "NEG:[5, 4, 3, 2, 1]", "EMPTY:[]", "EMPTY2:[]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STOP:{{ range(5) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--reversed.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--reversed.test.yaml index 9b440f0d..33bf63c9 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--reversed.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--reversed.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT:[2, 1, 3]", "STR:[\"b\", \"a\", \"c\"]", "SINGLE:[42]", "NESTED:[[1, 3, 5], [], [1]]", "EMPTY:[]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT:{{ reversed([3, 1, 2]) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--sorted.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--sorted.test.yaml index 5e74d6eb..a45478ee 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--sorted.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--sorted.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT:[1, 2, 3]", "STR:[\"a\", \"b\", \"c\"]", "ALREADY:[1, 2, 3]", "EMPTY:[]", "FLOAT:[1.0, 2.5, 3.5]", "NESTED:[[], [1], [1, 2], [1, 3]]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'INT:{{ sorted([3, 1, 2]) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--unique.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--unique.test.yaml index 6aee9f0d..1bddf273 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--unique.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.3--unique.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["BOOL:[[True, False]]", "INT:[[3, 1, 2]]", "FLOAT:[[1.5, 2.5, 3.5]]", "STR:[a,b,c]", "RANGE_EXPR:[2]", "LIST_INT:[[[1, 2], [3, 4]]]", "LIST_STR:[[['a'], ['b']]]", "LIST_FLOAT:[[[1.0], [2.0]]]", "LIST_BOOL:[[[True], [False]]]", "EMPTY:[[]]", "ALL_SAME:[[7]]", "METHOD:[[1, 2, 3]]", "CHAINED:[[1, 2, 3]]", "PATH:[['/a', '/b']]", "LIST_PATH:[[['/a'], ['/b']]]"], "expected_windows": ["BOOL:[[True, False]]", "INT:[[3, 1, 2]]", "FLOAT:[[1.5, 2.5, 3.5]]", "STR:[a,b,c]", "RANGE_EXPR:[2]", "LIST_INT:[[[1, 2], [3, 4]]]", "LIST_STR:[[['a'], ['b']]]", "LIST_FLOAT:[[[1.0], [2.0]]]", "LIST_BOOL:[[[True], [False]]]", "EMPTY:[[]]", "ALL_SAME:[[7]]", "METHOD:[[1, 2, 3]]", "CHAINED:[[1, 2, 3]]", "PATH:[['\\\\a', '\\\\b']]", "LIST_PATH:[[['\\\\a'], ['\\\\b']]]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'BOOL:[{{ repr_py(unique([True, False, True, False])) }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--case-transforms.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--case-transforms.test.yaml index f87317e2..63d6db46 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--case-transforms.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--case-transforms.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["UPPER:HELLO", "LOWER:hello", "CAP:Hello world", "TITLE:Hello World"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'UPPER:{{ upper("hello") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find-index.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find-index.test.yaml index 47378a46..1179685d 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find-index.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find-index.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FIND:[1]", "FIND_MISS:[-1]", "RFIND:[4]", "RFIND_MISS:[-1]", "INDEX:[1]", "RINDEX:[4]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FIND:[{{ find("hello", "ell") }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find.test.yaml index 0de650a2..7df69736 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--find.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FOUND:6", "NOT_FOUND:-1", "START:0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FOUND:{{ find("hello world", "world") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--padding.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--padding.test.yaml index d5f365a6..4a7f1d34 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--padding.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--padding.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ZFILL:00042", "ZFILL_INT:0007", "ZFILL_METHOD:00042", "ZFILL_INT_METHOD:0007", "ZFILL_NEG_INT:-01", "ZFILL_NEG_STR:-010", "ZFILL_PLUS:+005", "ZFILL_FLOAT:00003.14", "ZFILL_FLOAT_NEG:-00002.5", "ZFILL_FLOAT_METHOD:00003.14", "ZFILL_FLOAT_ROUND:0000.30", "LJUST:[hi ]", "RJUST:[ hi]", "CENTER:[ hi ]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ZFILL:{{ zfill("42", 5) }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--removeprefix-removesuffix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--removeprefix-removesuffix.test.yaml index 00802910..5411032b 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--removeprefix-removesuffix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--removeprefix-removesuffix.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RP_MATCH:Hook", "RP_NONE:TestHook", "RS_MATCH:render", "RS_NONE:render.exr"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'RP_MATCH:{{ removeprefix("TestHook", "Test") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--replace.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--replace.test.yaml index dec6718d..3572f1d6 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--replace.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--replace.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MATCH:herro", "NONE:hello"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'MATCH:{{ replace("hello", "l", "r") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--rsplit.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--rsplit.test.yaml index 9a207606..67f55d9a 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--rsplit.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--rsplit.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SPLIT:a;b;c", "SPLIT_MAX:a;b;c,d", "RSPLIT:a;b;c", "RSPLIT_MAX:a,b;c;d", "METHOD:a;b/c/d", "RMETHOD:a/b/c;d"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SPLIT:{{ split("a,b,c", ",").join(";") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--search-test.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--search-test.test.yaml index 491a4de1..7c6e1a73 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--search-test.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--search-test.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SW_T:true", "SW_F:false", "EW_T:true", "EW_F:false", "COUNT:2", "COUNT_ZERO:0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SW_T:{{ startswith("hello", "hel") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-empty-string.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-empty-string.test.yaml index 4c731188..d90d6ed5 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-empty-string.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-empty-string.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SPLIT:[\"\"]", "LEN:1"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SPLIT:{{ "".split(",") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-join.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-join.test.yaml index dbe81c3e..07cde265 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-join.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-join.test.yaml @@ -10,10 +10,21 @@ template: - 'paths = [path("/a"), path("/b"), path("/c")]' - 'path_join = join(paths, ":")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SPLIT:[\"a\", \"b\", \"c\"]", "JOIN:a-b-c", "PATH_JOIN:/a:/b:/c", "EMPTY_JOIN:0 chars"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SPLIT:{{ split("a,b,c", ",") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-whitespace.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-whitespace.test.yaml index 0af18255..a2acc584 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-whitespace.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--split-whitespace.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SPLIT:[hello,world]", "SPLIT_TABS:[a,b,c]", "SPLIT_NEWLINES:[a,b,c]", "SPLIT_MIXED:[a,b,c]", "SPLIT_EMPTY:[0]", "RSPLIT:[hello,world]", "RSPLIT_MIXED:[a,b,c]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SPLIT:[{{ split(" hello world ").join(",") }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--string-classification.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--string-classification.test.yaml index 88361a6d..88809238 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--string-classification.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--string-classification.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ISDIGIT_T:[true]", "ISDIGIT_F:[false]", "ISDIGIT_E:[false]", "ISALPHA_T:[true]", "ISALPHA_F:[false]", "ISALNUM_T:[true]", "ISALNUM_F:[false]", "ISSPACE_T:[true]", "ISSPACE_F:[false]", "ISUPPER_T:[true]", "ISUPPER_F:[false]", "ISLOWER_T:[true]", "ISLOWER_F:[false]", "ISASCII_T:[true]", "ISASCII_E:[true]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ISDIGIT_T:[{{ "123".isdigit() }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip-chars.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip-chars.test.yaml index 633247f2..c2c0083a 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip-chars.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip-chars.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STRIP:[hello]", "LSTRIP:[helloxx]", "RSTRIP:[xxhello]", "STRIP_MULTI:[HELLO]", "METHOD:[hi]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STRIP:[{{ strip("xxhelloxx", "x") }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip.test.yaml index 5b163f9b..e10a50bf 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.4--strip.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STRIP:[hi]", "LSTRIP:[hi ]", "RSTRIP:[ hi]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STRIP:[{{ strip(" hi ") }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-escape.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-escape.test.yaml index c81e9c60..840c18af 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-escape.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-escape.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["DOT:file\\.exr", "BRACKETS:file\\[1\\]\\.txt"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'DOT:{{ re_escape("file.exr") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-findall.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-findall.test.yaml index ed46c1a6..1690533f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-findall.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-findall.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["PLAIN:[\"1\", \"2\", \"3\"]", "ONE_GROUP:[\"010\", \"020\"]", "MULTI_GROUP:[[\"1\", \"2\", \"3\"], [\"4\", \"5\", \"6\"]]", "NO_MATCH:[]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'PLAIN:{{ re_findall("a1b2c3", r"\d+") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-match.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-match.test.yaml index c7547552..aa409a0e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-match.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-match.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ONE_GROUP:[\"v042\", \"042\"]", "NO_GROUPS:[\"hello\"]", "MULTI:[\"shot010_v003\", \"010\", \"003\"]", "NONE:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ONE_GROUP:{{ re_match("v042_final", r"v(\d+)") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-portable-syntax.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-portable-syntax.test.yaml index 3fac41df..4b134bb6 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-portable-syntax.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-portable-syntax.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["DOLLAR:true", "CARET:true", "WORD_BOUND:[\"cat\"]", "NON_CAPTURE:[\"ab\", \"b\"]", "ALTERNATION:[\"cat\", \"bat\", \"hat\"]", "QUANTIFIER:aab", "NON_GREEDY:"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'DOLLAR:{{ re_search("hello", r"llo$") != null }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-search.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-search.test.yaml index 5babd247..78fe02d0 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-search.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-search.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FULL:_v042", "GROUP:042", "NO_GROUPS:123", "MULTI:[\"shot010_v003\", \"010\", \"003\"]", "NONE:true", "ANCHOR:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'FULL:{{ re_search("asset_v042_final.abc", r"_v(\d+)")[0] }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-split.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-split.test.yaml index 63f7c204..883c1a5c 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-split.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-split.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["DELIM:[one|two|three]", "DIGITS:[abc|def|ghi|]", "WHITESPACE:[hello|world|foo|bar]", "MULTI_CHAR:[foo|bar|baz]", "MAXSPLIT:[a|b|c3d4e]", "NO_MATCH:[hello]", "METHOD:[2024|01|15]", "KV_PAIRS:[key1|val1|key2|val2|key3|val3]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'DELIM:[{{ re_split("one,two;three", r"[,;]").join("|") }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-sub.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-sub.test.yaml index d947257f..6d09177b 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-sub.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.5--re-sub.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SINGLE:frame_002", "MULTI:aXbXcX", "NO_MATCH:hello"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SINGLE:{{ re_sub("frame_001", r"\d+", "002") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--path-absolute-relative.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--path-absolute-relative.test.yaml index 3f552209..c8c51ea0 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--path-absolute-relative.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--path-absolute-relative.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["ABS_REL:[false]", "ABS_URI:[true]", "REL_TO_URI_T:[true]", "REL_TO_URI_F:[false]", "REL_TO_URI_SAME:[true]", "REL_TO_MIX:[false]", "RELATIVE_URI:[file.txt]", "RELATIVE_URI_SAME:[.]", "ABS_POSIX:[true]", "ABS_WIN:[false]", "ABS_UNC:[true]", "REL_TO_POSIX_T:[true]", "REL_TO_POSIX_F:[false]", "REL_TO_UNC_T:[true]", "REL_TO_UNC_F:[false]", "RELATIVE_POSIX:[c/d]", "RELATIVE_UNC:[dir/file]", "RELATIVE_URI_NESTED:[a/b/c]"], "expected_windows": ["ABS_REL:[false]", "ABS_URI:[true]", "REL_TO_URI_T:[true]", "REL_TO_URI_F:[false]", "REL_TO_URI_SAME:[true]", "REL_TO_MIX:[false]", "RELATIVE_URI:[file.txt]", "RELATIVE_URI_SAME:[.]", "ABS_POSIX:[false]", "ABS_WIN:[true]", "ABS_UNC:[true]", "REL_TO_POSIX_T:[true]", "REL_TO_POSIX_F:[false]", "REL_TO_UNC_T:[true]", "REL_TO_UNC_F:[false]", "RELATIVE_POSIX:[c\\d]", "RELATIVE_UNC:[dir\\file]", "RELATIVE_URI_NESTED:[a\\b\\c]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ABS_POSIX:[{{ path("/a/b").is_absolute() }}]') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-cmd.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-cmd.test.yaml index 9e2d5b5e..f2dbcb13 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-cmd.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-cmd.test.yaml @@ -26,10 +26,21 @@ template: newline_rn = repr_cmd("a\r\nb") - "list_val = repr_cmd([\"echo\", \"a & b\"])" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SIMPLE:hello", "AMP:\"a & b\"", "PIPE:\"x | y\"", "CARET:\"a ^^ b\"", "ANGLES:\"a < b > c\"", "DQUOTE:\"say ^\"hi^\"\"", "PARENS:\"(foo)\"", "PCT:\"100%%\"", "BANG:\"hello^^!\"", "BANG_VAR:\"^^!PATH^^!\"", "BANG_CARET:\"a ^^ b^^!\"", "SPACES:\"hello world\"", "NEWLINE_STRIPPED:ab", "NEWLINE_R_STRIPPED:ab", "NEWLINE_RN_STRIPPED:ab", "LIST:echo \"a & b\""]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SIMPLE:{{ simple }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-json.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-json.test.yaml index feea679f..20a2fa32 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-json.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-json.test.yaml @@ -15,10 +15,21 @@ template: - 'list_val = repr_json([1, 2, 3])' - "range_val = repr_json(range_expr(\"1-10\"))" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STR:\"hello\"", "INT:42", "FLOAT:3.14", "BOOL_T:true", "BOOL_F:false", "NULL:null", "LIST:[1, 2, 3]", "RANGE:\"1-10\""]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STR:{{ str_val }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-pwsh.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-pwsh.test.yaml index bf1c1551..08f9b9ff 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-pwsh.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-pwsh.test.yaml @@ -16,10 +16,21 @@ template: - "range_val = repr_pwsh(range_expr(\"1-10\"))" - "list_val = repr_pwsh([\"a\", \"b\"])" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STR:'hello'", "QUOTE:'it''s'", "BOOL_T:$true", "BOOL_F:$false", "INT:42", "FLOAT:3.14", "PATH:'/tmp/out'", "RANGE:'1-10'", "LIST:@('a', 'b')"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r"STR:{{ str_val }}") diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-py.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-py.test.yaml index 2c35370b..4606cc03 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-py.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.2.6--repr-py.test.yaml @@ -16,10 +16,21 @@ template: - 'path_val = repr_py(path("/tmp/out"))' - "range_val = repr_py(range_expr(\"1-10\"))" script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["STR:'hello'", "INT:42", "FLOAT:3.14", "BOOL_T:True", "BOOL_F:False", "NULL:None", "LIST:[1, 2]", "PATH:'/tmp/out'", "RANGE:'1-10'"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r"STR:{{ str_val }}") diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-compound-suffix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-compound-suffix.test.yaml index d0f35a10..27337a43 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-compound-suffix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-compound-suffix.test.yaml @@ -12,10 +12,21 @@ template: - 'psuffixes = p.suffixes' - 'pstem = p.stem' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["SUFFIX:.gz", "SUFFIXES:[\".tar\", \".gz\"]", "STEM:backup.tar"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'SUFFIX:{{ psuffix }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-properties.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-properties.test.yaml index fa395ec6..06c216b7 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-properties.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--path-properties.test.yaml @@ -21,10 +21,21 @@ template: - 'root_parent = root.parent' - 'root_parts = root.parts' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["NAME:scene.exr", "STEM:scene", "SUFFIX:.exr", "SUFFIXES:[\".exr\"]", "PARTS:[\"/\", \"mnt\", \"renders\", \"scene.exr\"]", "NOEXT_SUFFIX:", "NOEXT_SUFFIXES:[]", "ROOT_NAME:0 chars", "ROOT_PARENT_POSIX:/", "ROOT_PARTS:[\"/\"]", "PARENT:/mnt/renders"], "expected_windows": ["NAME:scene.exr", "STEM:scene", "SUFFIX:.exr", "SUFFIXES:[\".exr\"]", "PARTS:[\"/\", \"mnt\", \"renders\", \"scene.exr\"]", "NOEXT_SUFFIX:", "NOEXT_SUFFIXES:[]", "ROOT_NAME:0 chars", "ROOT_PARENT_POSIX:/", "ROOT_PARTS:[\"/\"]", "PARENT:\\mnt\\renders"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'NAME:{{ pname }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-host-context.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-host-context.test.yaml index f7647068..209a4394 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-host-context.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-host-context.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["PARENT:s3://bucket/a/b", "PARTS:[\"s3://bucket\", \"a\", \"b\"]", "SCHEME_PRESERVED:s3://bucket/key", "HTTPS:https://host/path/file.txt", "HTTPS_PARENT:https://host/path", "STR:s3://bucket/a/b/c.txt", "JOIN:s3://bucket/a/b/c.txt"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STR:{{ path("s3://bucket/a/b/c.txt") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-no-normalization.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-no-normalization.test.yaml index 2a535b54..b6d8397b 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-no-normalization.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-no-normalization.test.yaml @@ -33,10 +33,21 @@ template: - 'rt_str = string(rt)' - 'rt_eq = rt == p1' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["P1_STR:s3://bucket/a//b/file.txt", "P1_PARTS:[\"s3://bucket\", \"a\", \"\", \"b\", \"file.txt\"]", "P1_NAME:file.txt", "P1_PARENT:s3://bucket/a//b", "P2_STR:s3://bucket/a///b", "P2_PARTS:[\"s3://bucket\", \"a\", \"\", \"\", \"b\"]", "P3_STR:s3://bucket/a/./b/../c", "P3_PARTS:[\"s3://bucket\", \"a\", \".\", \"b\", \"..\", \"c\"]", "P4_STR:s3://bucket/prefix/", "P4_PARTS:[\"s3://bucket\", \"prefix\", \"\"]", "P4_NAME:", "RT_STR:s3://bucket/a//b/file.txt", "RT_EQ:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'P1_STR:{{ p1_str }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-properties.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-properties.test.yaml index 748e8ecb..2f0ec3ef 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-properties.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-properties.test.yaml @@ -39,10 +39,21 @@ template: - 'fsx_name = fsx.name' - 'fsx_parts = fsx.parts' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["S3_NAME:teapot.obj", "S3_STEM:teapot", "S3_SUFFIX:.obj", "S3_PARENT:s3://my-bucket/assets", "S3_PARTS:[\"s3://my-bucket\", \"assets\", \"teapot.obj\"]", "H_NAME:scene.tar.gz", "H_STEM:scene.tar", "H_SUFFIX:.gz", "H_SUFFIXES:[\".tar\", \".gz\"]", "H_PARENT:https://example.com/models", "H_PARTS:[\"https://example.com\", \"models\", \"scene.tar.gz\"]", "P2_PARENT1:s3://bucket/a", "P2_PARENT2:s3://bucket", "P2_ROOT:s3://bucket", "BARE_NAME:", "BARE_PARTS:[\"s3://bucket\"]", "BARE_PARENT:s3://bucket", "FSX_NAME:file.bin", "FSX_PARTS:[\"fsx://vol-123\", \"data\", \"file.bin\"]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_NAME:{{ s3_name }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-scheme-detection.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-scheme-detection.test.yaml index 3763fd18..878ffef4 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-scheme-detection.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-scheme-detection.test.yaml @@ -20,10 +20,21 @@ template: # --- Edge case: colon in path but not a URI --- - 'colon_path = path("/mnt/c:/data")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["S3:s3://bucket/key", "S3_PARTS:[\"s3://bucket\", \"key\"]", "HTTPS:https://host/path", "HTTPS_PARTS:[\"https://host\", \"path\"]", "FSX:fsx://vol/data", "FSX_PARTS:[\"fsx://vol\", \"data\"]", "CUSTOM:my-scheme+2://server/path", "CUSTOM_PARTS:[\"my-scheme+2://server\", \"path\"]", "POSIX_ABS:/mnt/data/file.txt", "POSIX_ABS_PARTS:[\"/\", \"mnt\", \"data\", \"file.txt\"]", "POSIX_REL:relative/path", "COLON:/mnt/c:/data"], "expected_windows": ["S3:s3://bucket/key", "S3_PARTS:[\"s3://bucket\", \"key\"]", "HTTPS:https://host/path", "HTTPS_PARTS:[\"https://host\", \"path\"]", "FSX:fsx://vol/data", "FSX_PARTS:[\"fsx://vol\", \"data\"]", "CUSTOM:my-scheme+2://server/path", "CUSTOM_PARTS:[\"my-scheme+2://server\", \"path\"]", "POSIX_ABS:\\mnt\\data\\file.txt", "POSIX_ABS_PARTS:[\"\\\", \"mnt\", \"data\", \"file.txt\"]", "POSIX_REL:relative\\path", "COLON:\\mnt\\c:\\data"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3:{{ s3 }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-unmapped.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-unmapped.test.yaml index 690c9544..15474954 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-unmapped.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.1--uri-path-unmapped.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VALUE:s3://my-bucket/assets/teapot.obj", "NAME:teapot.obj", "STEM:teapot", "SUFFIX:.obj", "PARENT:s3://my-bucket/assets", "PARTS:[\"s3://my-bucket\", \"assets\", \"teapot.obj\"]", "WITH_SUFFIX:s3://my-bucket/assets/teapot.png", "JOIN:s3://my-bucket/assets/other.obj"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'VALUE:{{ Param.InputFile }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--apply-path-mapping.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--apply-path-mapping.test.yaml index ae1a5d87..af265200 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--apply-path-mapping.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--apply-path-mapping.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["POSIX_MAPPED:/local/cache/project/scene.exr", "POSIX_UNMAPPED:/other/path/file.txt", "WIN_MAPPED:/data/assets/textures/wood.png", "WIN_UNMAPPED:E:\\other\\file.txt"], "expected_windows": ["POSIX_MAPPED:\\local\\cache\\project\\scene.exr", "POSIX_UNMAPPED:\\other\\path\\file.txt", "WIN_MAPPED:\\data\\assets\\textures\\wood.png", "WIN_UNMAPPED:E:\\other\\file.txt"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'POSIX_MAPPED:{{ apply_path_mapping("/mnt/shared/project/scene.exr") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--as-posix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--as-posix.test.yaml index 9210642a..64a46e0e 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--as-posix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--as-posix.test.yaml @@ -9,10 +9,21 @@ template: - 'posix = as_posix(path("/mnt/renders/scene.exr"))' - 'relative = as_posix(path("a/b/c"))' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ABS:/mnt/renders/scene.exr", "REL:a/b/c"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'ABS:{{ posix }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--path-construction.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--path-construction.test.yaml index bb3beb1c..bcdaf705 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--path-construction.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--path-construction.test.yaml @@ -10,10 +10,21 @@ template: - 'from_parts = path(["a", "b", "c"])' - 'from_abs_parts = path(["/", "usr", "local"])' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["STR:/a/b", "PARTS:a/b/c", "ABS_PARTS:/usr/local"], "expected_windows": ["STR:\\a\\b", "PARTS:a\\b\\c", "ABS_PARTS:\\usr\\local"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'STR:{{ from_str }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-posix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-posix.test.yaml index 9180bb22..0eef2f4c 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-posix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-posix.test.yaml @@ -18,10 +18,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["S3_RAW:s3://my-bucket/assets/teapot.obj", "S3_NAME:teapot.obj", "HTTP_RAW:https://cdn.example.com/models/scene.obj", "UNMAPPED_RAW:fsx://vol/data/file.bin", "UNMAPPED_VALUE:fsx://vol/data/file.bin", "UNMAPPED_NAME:file.bin", "S3_MAPPED:/local/assets/teapot.obj", "HTTP_MAPPED:/cache/models/scene.obj"], "expected_windows": ["S3_RAW:s3://my-bucket/assets/teapot.obj", "S3_NAME:teapot.obj", "HTTP_RAW:https://cdn.example.com/models/scene.obj", "UNMAPPED_RAW:fsx://vol/data/file.bin", "UNMAPPED_VALUE:fsx://vol/data/file.bin", "UNMAPPED_NAME:file.bin", "S3_MAPPED:\\local\\assets\\teapot.obj", "HTTP_MAPPED:\\cache\\models\\scene.obj"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_RAW:{{ RawParam.S3File }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-windows.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-windows.test.yaml index 58cb16c9..63ff5ea4 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-windows.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-explicit-values-windows.test.yaml @@ -18,10 +18,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["S3_RAW:s3://my-bucket/assets/teapot.obj", "S3_MAPPED:E:\\local\\assets\\teapot.obj", "S3_NAME:teapot.obj", "HTTP_RAW:https://cdn.example.com/models/scene.obj", "HTTP_MAPPED:E:\\cache\\models\\scene.obj", "UNMAPPED_RAW:fsx://vol/data/file.bin", "UNMAPPED_VALUE:fsx://vol/data/file.bin", "UNMAPPED_NAME:file.bin"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_RAW:{{ RawParam.S3File }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-posix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-posix.test.yaml index 0c11dc58..a0a58e81 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-posix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-posix.test.yaml @@ -22,10 +22,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["S3_RAW:s3://my-bucket/assets/teapot.obj", "S3_NAME:teapot.obj", "HTTP_RAW:https://cdn.example.com/models/scene.obj", "HTTP_NAME:scene.obj", "UNMAPPED_RAW:fsx://vol/data/file.bin", "UNMAPPED_VALUE:fsx://vol/data/file.bin", "UNMAPPED_NAME:file.bin", "UNMAPPED_PARTS:[\"fsx://vol\", \"data\", \"file.bin\"]", "S3_MAPPED:/local/assets/teapot.obj", "S3_PARENT:/local/assets", "HTTP_MAPPED:/cache/models/scene.obj"], "expected_windows": ["S3_RAW:s3://my-bucket/assets/teapot.obj", "S3_NAME:teapot.obj", "HTTP_RAW:https://cdn.example.com/models/scene.obj", "HTTP_NAME:scene.obj", "UNMAPPED_RAW:fsx://vol/data/file.bin", "UNMAPPED_VALUE:fsx://vol/data/file.bin", "UNMAPPED_NAME:file.bin", "UNMAPPED_PARTS:[\"fsx://vol\", \"data\", \"file.bin\"]", "S3_MAPPED:\\local\\assets\\teapot.obj", "S3_PARENT:\\local\\assets", "HTTP_MAPPED:\\cache\\models\\scene.obj"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_RAW:{{ RawParam.S3File }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-windows.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-windows.test.yaml index 1c9a3f7d..1b026843 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-windows.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-param-implicit-mapping-windows.test.yaml @@ -22,10 +22,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["S3_RAW:s3://my-bucket/assets/teapot.obj", "S3_MAPPED:E:\\local\\assets\\teapot.obj", "S3_NAME:teapot.obj", "S3_PARENT:E:\\local\\assets", "HTTP_RAW:https://cdn.example.com/models/scene.obj", "HTTP_MAPPED:E:\\cache\\models\\scene.obj", "HTTP_NAME:scene.obj", "UNMAPPED_RAW:fsx://vol/data/file.bin", "UNMAPPED_VALUE:fsx://vol/data/file.bin", "UNMAPPED_NAME:file.bin", "UNMAPPED_PARTS:[\"fsx://vol\", \"data\", \"file.bin\"]"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_RAW:{{ RawParam.S3File }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-posix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-posix.test.yaml index 9d3e37ab..bbc1540a 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-posix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-posix.test.yaml @@ -14,10 +14,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["MAPPED_NAME:teapot.obj", "RAW:s3://my-bucket/assets/teapot.obj", "MAPPED:/mnt/shared/assets/teapot.obj", "MAPPED_PARENT:/mnt/shared/assets"], "expected_windows": ["MAPPED_NAME:teapot.obj", "RAW:s3://my-bucket/assets/teapot.obj", "MAPPED:\\mnt\\shared\\assets\\teapot.obj", "MAPPED_PARENT:\\mnt\\shared\\assets"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'MAPPED:{{ Param.InputFile }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-windows.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-windows.test.yaml index ec085926..127f6503 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-windows.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-mapping-windows.test.yaml @@ -14,10 +14,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MAPPED:E:\\shared\\assets\\teapot.obj", "MAPPED_NAME:teapot.obj", "MAPPED_PARENT:E:\\shared\\assets", "RAW:s3://my-bucket/assets/teapot.obj"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'MAPPED:{{ Param.InputFile }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-ops.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-ops.test.yaml index 6568cbf8..29ad0ee8 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-ops.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-path-ops.test.yaml @@ -45,10 +45,21 @@ template: - 'wnum = path("s3://bucket/renders/shot_####.exr").with_number(42)' - 'wnum_str = string(wnum)' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["JOINED:s3://bucket/assets/subdir/file.obj", "MULTI:s3://bucket/a/b/c.txt", "ABS_REPLACE:/local/path", "CONCAT:s3://bucket/file.txt", "FROM_STR:https://host/a/b", "FROM_PARTS:s3://bucket/dir/file.obj", "FROM_DBL:s3://bucket/a//b", "WITH_SUFFIX:s3://bucket/renders/scene.png", "WITH_NAME:s3://bucket/renders/other.obj", "WITH_STEM:s3://bucket/renders/final.exr", "AS_POSIX:s3://bucket/a/b", "WITH_NUMBER:s3://bucket/renders/shot_0042.exr"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'JOINED:{{ joined_str }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-posix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-posix.test.yaml index e6b1c0fd..ed0a0aec 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-posix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-posix.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["S3_NOMATCH_BUCKET:s3://other-bucket/assets/file.obj", "S3_NOMATCH_PREFIX:s3://my-bucket/assets2/file.obj", "HTTPS_NOMATCH:https://other.com/models/scene.obj", "UNMAPPED:fsx://vol/data/file.bin", "S3_MATCH:/local/assets/teapot.obj", "S3_EXACT:/local/assets", "S3_NESTED:/local/assets/sub/dir/file.exr", "HTTPS_MATCH:/cache/models/scene.obj", "POSIX_STILL_WORKS:/local/shared/project/file.exr"], "expected_windows": ["S3_NOMATCH_BUCKET:s3://other-bucket/assets/file.obj", "S3_NOMATCH_PREFIX:s3://my-bucket/assets2/file.obj", "HTTPS_NOMATCH:https://other.com/models/scene.obj", "UNMAPPED:fsx://vol/data/file.bin", "S3_MATCH:\\local\\assets\\teapot.obj", "S3_EXACT:\\local\\assets", "S3_NESTED:\\local\\assets\\sub\\dir\\file.exr", "HTTPS_MATCH:\\cache\\models\\scene.obj", "POSIX_STILL_WORKS:\\local\\shared\\project\\file.exr"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_MATCH:{{ apply_path_mapping("s3://my-bucket/assets/teapot.obj") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-windows.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-windows.test.yaml index 895c84d1..402d0890 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-windows.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--uri-source-path-mapping-windows.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["S3_MATCH:E:\\local\\assets\\teapot.obj", "S3_EXACT:E:\\local\\assets", "S3_NESTED:E:\\local\\assets\\sub\\dir\\file.exr", "S3_NOMATCH_BUCKET:s3://other-bucket/assets/file.obj", "S3_NOMATCH_PREFIX:s3://my-bucket/assets2/file.obj", "HTTPS_MATCH:E:\\cache\\models\\scene.obj", "HTTPS_NOMATCH:https://other.com/models/scene.obj", "WINDOWS_STILL_WORKS:E:\\local\\shared\\project\\file.exr", "UNMAPPED:fsx://vol/data/file.bin"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'S3_MATCH:{{ apply_path_mapping("s3://my-bucket/assets/teapot.obj") }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-name-stem-suffix.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-name-stem-suffix.test.yaml index 4a6df19a..860b82c2 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-name-stem-suffix.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-name-stem-suffix.test.yaml @@ -13,10 +13,21 @@ template: - 'wsuffix = with_suffix(p, ".png")' - 'nosuffix = with_suffix(p, "")' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["NAME:/renders/other.png", "STEM:/renders/final.exr", "SUFFIX:/renders/scene.png", "NOSUFFIX:/renders/scene"], "expected_windows": ["NAME:\\renders\\other.png", "STEM:\\renders\\final.exr", "SUFFIX:\\renders\\scene.png", "NOSUFFIX:\\renders\\scene"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'NAME:{{ wname }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-number.test.yaml b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-number.test.yaml index 25aac6e4..2d4a6198 100644 --- a/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-number.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/expr2.3.2--with-number.test.yaml @@ -23,10 +23,21 @@ template: - 'mixed_hash_after_printf = with_number(path("/out/f_%d_abc_###.exr"), 42)' - 'mixed_digits_after_printf = with_number(path("/out/file_%04d_003.exr"), 72)' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["STR:file_072.exr", "DIGITS:/out/file_072.exr", "PRINTF_BARE:/out/file_72.exr", "PRINTF_PAD:/out/file_0072.exr", "HASH4:/out/file_0072.exr", "HASH6:/out/file_000072.exr", "OVERFLOW:/out/file_10000.exr", "NO_PATTERN:/out/render_0072.exr", "NEG_DIGITS:/out/file_-01.exr", "NEG_PRINTF:/out/file_-001.exr", "NEG_HASH:/out/file_-001.exr", "MULTI_EXT:/out/render.0072.exr", "VFX_VERSION:/out/file.v2.072.exr", "DOT_ONLY:/out/file_0072.001", "MIXED_HP:/out/f_%d_abc_042.exr", "MIXED_DP:/out/file_%04d_072.exr"], "expected_windows": ["STR:file_072.exr", "DIGITS:\\out\\file_072.exr", "PRINTF_BARE:\\out\\file_72.exr", "PRINTF_PAD:\\out\\file_0072.exr", "HASH4:\\out\\file_0072.exr", "HASH6:\\out\\file_000072.exr", "OVERFLOW:\\out\\file_10000.exr", "NO_PATTERN:\\out\\render_0072.exr", "NEG_DIGITS:\\out\\file_-01.exr", "NEG_PRINTF:\\out\\file_-001.exr", "NEG_HASH:\\out\\file_-001.exr", "MULTI_EXT:\\out\\render.0072.exr", "VFX_VERSION:\\out\\file.v2.072.exr", "DOT_ONLY:\\out\\file_0072.001", "MIXED_HP:\\out\\f_%d_abc_042.exr", "MIXED_DP:\\out\\file_%04d_072.exr"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'DIGITS:{{ digits }}') diff --git a/conformance-tests/2023-09/EXPR/jobs/fail--in-conditional.test.yaml b/conformance-tests/2023-09/EXPR/jobs/fail--in-conditional.test.yaml index 3072f982..fa252fdf 100644 --- a/conformance-tests/2023-09/EXPR/jobs/fail--in-conditional.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/fail--in-conditional.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VAL:5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'VAL:{{ Param.X if Param.X > 0 else fail("must be positive") }}') expected: diff --git a/conformance-tests/2023-09/EXPR/jobs/noreturn--conditional-type.test.yaml b/conformance-tests/2023-09/EXPR/jobs/noreturn--conditional-type.test.yaml index c5726236..cad5932f 100644 --- a/conformance-tests/2023-09/EXPR/jobs/noreturn--conditional-type.test.yaml +++ b/conformance-tests/2023-09/EXPR/jobs/noreturn--conditional-type.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["INT:15", "BOOL:yes"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - >- print(r'INT:{{ (Param.X if Param.X > 0 else fail("bad")) + 10 }}') diff --git a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--notify-period-format-string.test.yaml b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--notify-period-format-string.test.yaml index 3c6a2625..da867202 100644 --- a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--notify-period-format-string.test.yaml +++ b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--notify-period-format-string.test.yaml @@ -12,10 +12,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["NOTIFY_OK"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - "print('NOTIFY_OK')" cancelation: diff --git a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--timeout-format-string.test.yaml b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--timeout-format-string.test.yaml index a6f4ab66..9f956312 100644 --- a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--timeout-format-string.test.yaml +++ b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/5--timeout-format-string.test.yaml @@ -11,11 +11,22 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["TIMEOUT_OK"]} actions: onRun: timeout: "{{Param.TimeoutSeconds}}" command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - "print('TIMEOUT_OK')" expected: diff --git a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-posix.test.yaml b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-posix.test.yaml index 902505d1..675aa2a5 100644 --- a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-posix.test.yaml +++ b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-posix.test.yaml @@ -9,6 +9,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["EOL:LF"], "forbidden": ["EOL:CRLF"]} - name: script type: TEXT data: | @@ -30,6 +37,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - "{{Task.File.checker}}" - "{{Task.File.script}}" expected: diff --git a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-windows.test.yaml b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-windows.test.yaml index dc701f4c..5508f7ba 100644 --- a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-windows.test.yaml +++ b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-auto-windows.test.yaml @@ -9,6 +9,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["EOL:CRLF"], "forbidden": ["EOL:LF"]} - name: script type: TEXT data: | @@ -30,6 +37,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - "{{Task.File.checker}}" - "{{Task.File.script}}" expected: diff --git a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-crlf.test.yaml b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-crlf.test.yaml index 4dd09036..1ddfc041 100644 --- a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-crlf.test.yaml +++ b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-crlf.test.yaml @@ -7,6 +7,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["EOL:CRLF"], "forbidden": ["EOL:LF"]} - name: script type: TEXT data: | @@ -28,6 +35,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - "{{Task.File.checker}}" - "{{Task.File.script}}" expected: diff --git a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-lf.test.yaml b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-lf.test.yaml index 6b1d6b0a..b171f7c4 100644 --- a/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-lf.test.yaml +++ b/conformance-tests/2023-09/FEATURE_BUNDLE_1/jobs/6.1--end-of-line-lf.test.yaml @@ -7,6 +7,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["EOL:LF"], "forbidden": ["EOL:CRLF"]} - name: script type: TEXT data: | @@ -28,6 +35,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - "{{Task.File.checker}}" - "{{Task.File.script}}" expected: diff --git a/conformance-tests/2023-09/REDACTED_ENV_VARS/jobs/unset-takes-precedence.test.yaml b/conformance-tests/2023-09/REDACTED_ENV_VARS/jobs/unset-takes-precedence.test.yaml index 3f88f6ae..e8e791cf 100644 --- a/conformance-tests/2023-09/REDACTED_ENV_VARS/jobs/unset-takes-precedence.test.yaml +++ b/conformance-tests/2023-09/REDACTED_ENV_VARS/jobs/unset-takes-precedence.test.yaml @@ -16,10 +16,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MY_VAR:NOT_SET"], "forbidden": ["secret_data"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os; print('MY_VAR:' + os.environ.get('MY_VAR', 'NOT_SET')) expected: diff --git a/conformance-tests/2023-09/base/jobs/1.1--basic-job-creation.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--basic-job-creation.test.yaml index ab357164..ed61aa88 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--basic-job-creation.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--basic-job-creation.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:hello"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:hello') expected: diff --git a/conformance-tests/2023-09/base/jobs/1.1--default-parameter-value.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--default-parameter-value.test.yaml index 1e4a60f1..ef56ce4a 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--default-parameter-value.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--default-parameter-value.test.yaml @@ -8,10 +8,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:default"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Version}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-high-precision-decimal.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-high-precision-decimal.test.yaml index 69122aa9..bb77d445 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-high-precision-decimal.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-high-precision-decimal.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:3.141592653589793"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Scale}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-int-string-coercion-valid.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-int-string-coercion-valid.test.yaml index 78fe9086..78b7a08e 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-int-string-coercion-valid.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-int-string-coercion-valid.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Scale}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-string-coercion-valid.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-string-coercion-valid.test.yaml index e626c595..ae7aa1cc 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-string-coercion-valid.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-string-coercion-valid.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:5.5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Scale}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-substitution.test.yaml index 74c464b1..243378e9 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--float-parameter-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--float-parameter-substitution.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:1.5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Scale}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--int-parameter-string-coercion-valid.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--int-parameter-string-coercion-valid.test.yaml index f2162eb0..1a67946a 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--int-parameter-string-coercion-valid.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--int-parameter-string-coercion-valid.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Count}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--int-parameter-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--int-parameter-substitution.test.yaml index 3ed15a3c..b1d9b7dc 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--int-parameter-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--int-parameter-substitution.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:42"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Count}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--job-name-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--job-name-substitution.test.yaml index cc921dd1..0beb717e 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--job-name-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--job-name-substitution.test.yaml @@ -7,10 +7,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:1.0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Version}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--multiple-parameter-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--multiple-parameter-substitution.test.yaml index 61db9489..816acb3f 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--multiple-parameter-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--multiple-parameter-substitution.test.yaml @@ -11,10 +11,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:MyProject"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Project}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--override-default-parameter.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--override-default-parameter.test.yaml index bd1cfa16..88ef8990 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--override-default-parameter.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--override-default-parameter.test.yaml @@ -8,10 +8,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:override"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.Version}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.1--validation-valid-optional-parameter-with-default.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--validation-valid-optional-parameter-with-default.test.yaml index d62ac489..7d4d2be5 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--validation-valid-optional-parameter-with-default.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--validation-valid-optional-parameter-with-default.test.yaml @@ -8,10 +8,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:default_value"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.OptionalParam}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/1.1--validation-valid-path-default-within-template-dir.test.yaml b/conformance-tests/2023-09/base/jobs/1.1--validation-valid-path-default-within-template-dir.test.yaml index 374dbd1d..28f0996c 100644 --- a/conformance-tests/2023-09/base/jobs/1.1--validation-valid-path-default-within-template-dir.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1--validation-valid-path-default-within-template-dir.test.yaml @@ -8,10 +8,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["OUTPUT:", "/output"], "expected_windows": ["OUTPUT:", "\\output"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'OUTPUT:{{Param.OutputDir}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/1.1.1--substitution-verification.test.yaml b/conformance-tests/2023-09/base/jobs/1.1.1--substitution-verification.test.yaml index c32e536a..85d518e1 100644 --- a/conformance-tests/2023-09/base/jobs/1.1.1--substitution-verification.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.1.1--substitution-verification.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["JOBNAME:Job-1.0-MyProject"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'JOBNAME:Job-{{Param.Version}}-{{Param.Project}}') parameters: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection-string.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection-string.test.yaml index db6e16de..0702fe40 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection-string.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection-string.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Value=bbbbb"], "forbidden": ["Value=aaa"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Value={{Param.Value}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection.test.yaml index f6786529..14c3f5f9 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--allowedvalues-intersection.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Foo=10"], "forbidden": ["Foo=20"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Foo={{Param.Foo}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--compatible-string-params.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--compatible-string-params.test.yaml index 67188a40..8a1747dc 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--compatible-string-params.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--compatible-string-params.test.yaml @@ -8,10 +8,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MERGE:Config=job-default"], "forbidden": ["\u007b\u007bParam.", "env-default"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'MERGE:Config={{Param.Config}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-float-range.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-float-range.test.yaml index 9ae6cbba..d9f51fe1 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-float-range.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-float-range.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Scale=2.5"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Scale={{Param.Scale}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-int-range.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-int-range.test.yaml index 9a26d355..ce50a6f5 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-int-range.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-int-range.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Count=50"], "forbidden": ["Count=0"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Count={{Param.Count}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-maxlength.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-maxlength.test.yaml index 7b7fd3b9..8ab6cae9 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-maxlength.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-maxlength.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Value=test-value"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Value={{Param.Value}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-minlength.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-minlength.test.yaml index 1978284f..15bd2ac8 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-minlength.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-minlength.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Value=test-value"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Value={{Param.Value}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-string-length.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-string-length.test.yaml index eb2de5df..961ba615 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-string-length.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--constraint-narrowing-string-length.test.yaml @@ -10,10 +10,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Name=test-value"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Name={{Param.Name}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--default-from-env-when-job-has-none.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--default-from-env-when-job-has-none.test.yaml index 6ad6fb0e..3e2ca2a7 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--default-from-env-when-job-has-none.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--default-from-env-when-job-has-none.test.yaml @@ -11,10 +11,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MERGE:default=medium"], "forbidden": ["MERGE:default=low", "MERGE:default=high"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'MERGE:default={{Param.Quality}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--default-from-job-template.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--default-from-job-template.test.yaml index e783ca44..7c843161 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--default-from-job-template.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--default-from-job-template.test.yaml @@ -12,10 +12,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MERGE:default=high"], "forbidden": ["MERGE:default=low"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'MERGE:default={{Param.Quality}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--job-default-takes-precedence.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--job-default-takes-precedence.test.yaml index 092ad202..66de4594 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--job-default-takes-precedence.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--job-default-takes-precedence.test.yaml @@ -8,10 +8,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["Setting=job-value"], "forbidden": ["Setting=env-value"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'Setting={{Param.Setting}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--multiple-env-templates.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--multiple-env-templates.test.yaml index 0f112656..9d8a7f31 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--multiple-env-templates.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--multiple-env-templates.test.yaml @@ -15,10 +15,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MERGE:Foo=8,Bar=bbbbbbbbbbbbbbbbbbbbbbbbb"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'MERGE:Foo={{Param.Foo}},Bar={{Param.Bar}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/1.2.1--two-env-templates-only.test.yaml b/conformance-tests/2023-09/base/jobs/1.2.1--two-env-templates-only.test.yaml index 1bf091bc..fddcb1a4 100644 --- a/conformance-tests/2023-09/base/jobs/1.2.1--two-env-templates-only.test.yaml +++ b/conformance-tests/2023-09/base/jobs/1.2.1--two-env-templates-only.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MERGE:Foo=5,Bar=hello-world"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'MERGE:Foo={{Param.Foo}},Bar={{Param.Bar}}') environments: diff --git a/conformance-tests/2023-09/base/jobs/2.2--path-uri-without-expr.test.yaml b/conformance-tests/2023-09/base/jobs/2.2--path-uri-without-expr.test.yaml index b4d925f0..92f35e1c 100644 --- a/conformance-tests/2023-09/base/jobs/2.2--path-uri-without-expr.test.yaml +++ b/conformance-tests/2023-09/base/jobs/2.2--path-uri-without-expr.test.yaml @@ -11,10 +11,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["IS_ABS:True", "HAS_SCHEME:False"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | import os diff --git a/conformance-tests/2023-09/base/jobs/3.4--empty.test.yaml b/conformance-tests/2023-09/base/jobs/3.4--empty.test.yaml index 857ce875..13534456 100644 --- a/conformance-tests/2023-09/base/jobs/3.4--empty.test.yaml +++ b/conformance-tests/2023-09/base/jobs/3.4--empty.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["TASK:executed"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'TASK:executed') expected: diff --git a/conformance-tests/2023-09/base/jobs/3.4.1--adv-format-string-single-value.test.yaml b/conformance-tests/2023-09/base/jobs/3.4.1--adv-format-string-single-value.test.yaml index d36b87ed..a1d3c40f 100644 --- a/conformance-tests/2023-09/base/jobs/3.4.1--adv-format-string-single-value.test.yaml +++ b/conformance-tests/2023-09/base/jobs/3.4.1--adv-format-string-single-value.test.yaml @@ -13,10 +13,21 @@ template: type: INT range: '{{Param.Frame}}' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VAL:5"], "forbidden": ["VAL:4", "VAL:6"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'VAL:{{Task.Param.Val}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/3.4.1--adv-large-step-exceeds-range.test.yaml b/conformance-tests/2023-09/base/jobs/3.4.1--adv-large-step-exceeds-range.test.yaml index 76178dc7..a18f4506 100644 --- a/conformance-tests/2023-09/base/jobs/3.4.1--adv-large-step-exceeds-range.test.yaml +++ b/conformance-tests/2023-09/base/jobs/3.4.1--adv-large-step-exceeds-range.test.yaml @@ -9,10 +9,21 @@ template: type: INT range: 1-5:10 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VAL:1"], "forbidden": ["VAL:0", "VAL:2"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'VAL:{{Task.Param.Val}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/3.4.1--single-negative-value.test.yaml b/conformance-tests/2023-09/base/jobs/3.4.1--single-negative-value.test.yaml index 3dd83ca5..ca8172a1 100644 --- a/conformance-tests/2023-09/base/jobs/3.4.1--single-negative-value.test.yaml +++ b/conformance-tests/2023-09/base/jobs/3.4.1--single-negative-value.test.yaml @@ -9,10 +9,21 @@ template: type: INT range: '-10' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VAL:-10"], "forbidden": ["VAL:-11", "VAL:-9"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'VAL:{{Task.Param.Val}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/3.4.1--single-value.test.yaml b/conformance-tests/2023-09/base/jobs/3.4.1--single-value.test.yaml index 58ec3aaf..39ef9eb2 100644 --- a/conformance-tests/2023-09/base/jobs/3.4.1--single-value.test.yaml +++ b/conformance-tests/2023-09/base/jobs/3.4.1--single-value.test.yaml @@ -9,10 +9,21 @@ template: type: INT range: '5' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VAL:5"], "forbidden": ["VAL:4", "VAL:6"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'VAL:{{Task.Param.Val}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/3.4.1--single-zero.test.yaml b/conformance-tests/2023-09/base/jobs/3.4.1--single-zero.test.yaml index a9a20a8e..7d22f5ce 100644 --- a/conformance-tests/2023-09/base/jobs/3.4.1--single-zero.test.yaml +++ b/conformance-tests/2023-09/base/jobs/3.4.1--single-zero.test.yaml @@ -9,10 +9,21 @@ template: type: INT range: '0' script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["VAL:0"], "forbidden": ["VAL:-1", "VAL:1"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'VAL:{{Task.Param.Val}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/4--openjd-env-sets-variable.test.yaml b/conformance-tests/2023-09/base/jobs/4--openjd-env-sets-variable.test.yaml index ee8eff91..7d852599 100644 --- a/conformance-tests/2023-09/base/jobs/4--openjd-env-sets-variable.test.yaml +++ b/conformance-tests/2023-09/base/jobs/4--openjd-env-sets-variable.test.yaml @@ -13,10 +13,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["MY_VAR_IS:myvalue"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os; print('MY_VAR_IS:' + os.environ.get('MY_VAR', '')) expected: diff --git a/conformance-tests/2023-09/base/jobs/4--openjd-unset-env.test.yaml b/conformance-tests/2023-09/base/jobs/4--openjd-unset-env.test.yaml index e1594bc1..6c344ab1 100644 --- a/conformance-tests/2023-09/base/jobs/4--openjd-unset-env.test.yaml +++ b/conformance-tests/2023-09/base/jobs/4--openjd-unset-env.test.yaml @@ -15,10 +15,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["UNSET_ME_IS:UNSET"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os; print('UNSET_ME_IS:' + os.environ.get('UNSET_ME', 'UNSET')) expected: diff --git a/conformance-tests/2023-09/base/jobs/6--embedded-file-in-session-dir.test.yaml b/conformance-tests/2023-09/base/jobs/6--embedded-file-in-session-dir.test.yaml index f1dd1856..a0ca903e 100644 --- a/conformance-tests/2023-09/base/jobs/6--embedded-file-in-session-dir.test.yaml +++ b/conformance-tests/2023-09/base/jobs/6--embedded-file-in-session-dir.test.yaml @@ -5,6 +5,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["FILE_IN_SESSION_DIR:true"]} - name: testfile type: TEXT data: test content @@ -12,6 +19,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os; path = r'{{Task.File.testfile}}'; session_dir = r'{{Session.WorkingDirectory}}'; print('FILE_IN_SESSION_DIR:true' if os.path.dirname(path).startswith(session_dir) diff --git a/conformance-tests/2023-09/base/jobs/6--embedded-file-runnable-permissions.test.yaml b/conformance-tests/2023-09/base/jobs/6--embedded-file-runnable-permissions.test.yaml index e0b4fecc..c7427365 100644 --- a/conformance-tests/2023-09/base/jobs/6--embedded-file-runnable-permissions.test.yaml +++ b/conformance-tests/2023-09/base/jobs/6--embedded-file-runnable-permissions.test.yaml @@ -5,6 +5,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["EXECUTABLE:True"], "expected_windows": []} - name: runnable_script type: TEXT runnable: true @@ -15,6 +22,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - import os, stat; path = r'{{Task.File.runnable_script}}'; mode = os.stat(path).st_mode; is_exec = bool(mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)); print(f'EXECUTABLE:{is_exec}') diff --git a/conformance-tests/2023-09/base/jobs/6--session-var-in-embedded-data.test.yaml b/conformance-tests/2023-09/base/jobs/6--session-var-in-embedded-data.test.yaml index 601ea367..fe6ee6bd 100644 --- a/conformance-tests/2023-09/base/jobs/6--session-var-in-embedded-data.test.yaml +++ b/conformance-tests/2023-09/base/jobs/6--session-var-in-embedded-data.test.yaml @@ -5,6 +5,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["SESSION_DIR:/"], "expected_windows": ["SESSION_DIR:", ":\\"]} - name: script type: TEXT data: 'import sys @@ -16,6 +23,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - '{{Task.File.script}}' expected: output_posix: diff --git a/conformance-tests/2023-09/base/jobs/7.3--adjacent-substitutions.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--adjacent-substitutions.test.yaml index c6211c2f..e912d4b9 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--adjacent-substitutions.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--adjacent-substitutions.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:HelloWorld"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:{{Param.A}}{{Param.B}}') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--empty-value-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--empty-value-substitution.test.yaml index df04171f..f2ef1fa7 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--empty-value-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--empty-value-substitution.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Value: []"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - 'print(''RESULT:Value: [{{Param.Empty}}]'')' parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--float-and-string-mixed.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--float-and-string-mixed.test.yaml index e9d8c321..635d58a1 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--float-and-string-mixed.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--float-and-string-mixed.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:4.098-hello1"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:{{Param.Float}}-{{Param.String}}') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--float-formatting-precision.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--float-formatting-precision.test.yaml index 2d96d201..162d6936 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--float-formatting-precision.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--float-formatting-precision.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Value: 4.098"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - 'print(''RESULT:Value: {{Param.Float}}'')' parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--multiple-substitutions.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--multiple-substitutions.test.yaml index 6ce99dcc..ec9e2e77 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--multiple-substitutions.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--multiple-substitutions.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:One and Two"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:{{Param.First}} and {{Param.Second}}') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--numeric-value-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--numeric-value-substitution.test.yaml index 9b73cf4f..6b430148 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--numeric-value-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--numeric-value-substitution.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Count: 100"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - 'print(''RESULT:Count: {{Param.Count}}'')' parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--param-in-capability.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--param-in-capability.test.yaml index 542048b9..0152ad85 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--param-in-capability.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--param-in-capability.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:high"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:{{Param.Quality}}') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-posix.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-posix.test.yaml index df76f7bf..7173288e 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-posix.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-posix.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:/mapped/path"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:{{Param.InputPath}}') diff --git a/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-windows.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-windows.test.yaml index 226892aa..a8845d13 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-windows.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--path-param-mapping-windows.test.yaml @@ -22,10 +22,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["DRIVE_BS:E:\\mapped\\path", "DRIVE_FS:E:\\mapped\\path", "DRIVE_MIXED:E:\\mapped\\path\\somewhere", "UNC_BS:Z:\\share\\path", "UNC_FS:Z:\\share\\path"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - | print(r'DRIVE_BS:{{Param.DriveBs}}') diff --git a/conformance-tests/2023-09/base/jobs/7.3--plain-string.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--plain-string.test.yaml index 33053713..d1ddc084 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--plain-string.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--plain-string.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Hello World"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:Hello World') expected: diff --git a/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-posix.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-posix.test.yaml index aca81179..e61e6164 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-posix.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-posix.test.yaml @@ -9,10 +9,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RAW:/original/path", "MAPPED:/mapped/path"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RAW:{{RawParam.InputPath}}');print(r'MAPPED:{{Param.InputPath}}') diff --git a/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-windows.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-windows.test.yaml index d56254d3..17e3b3c8 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-windows.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--rawparam-no-mapping-windows.test.yaml @@ -12,10 +12,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RAW:D:\\original\\path", "MAPPED:E:\\mapped\\path"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RAW:{{RawParam.InputPath}}');print(r'MAPPED:{{Param.InputPath}}') diff --git a/conformance-tests/2023-09/base/jobs/7.3--rawparam-string.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--rawparam-string.test.yaml index 7a45e1df..a91b6aba 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--rawparam-string.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--rawparam-string.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:TestValue"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:{{RawParam.Name}}') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--session-has-path-mapping.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--session-has-path-mapping.test.yaml index d2984764..d15b8f88 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--session-has-path-mapping.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--session-has-path-mapping.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["HAS_MAPPING:false"], "forbidden": ["\u007b\u007bSession."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'HAS_MAPPING:{{Session.HasPathMappingRules}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/7.3--session-path-mapping-rules-file.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--session-path-mapping-rules-file.test.yaml index 199c4e60..8daa88f3 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--session-path-mapping-rules-file.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--session-path-mapping-rules-file.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:true"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:true') - FILE:{{Session.PathMappingRulesFile}} diff --git a/conformance-tests/2023-09/base/jobs/7.3--session-working-dir-env-var.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--session-working-dir-env-var.test.yaml index b5d4750d..8eb9e1c1 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--session-working-dir-env-var.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--session-working-dir-env-var.test.yaml @@ -6,10 +6,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["ENV_SET:True", "VALUES_MATCH:True"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - "import os; env_val = os.environ.get('OPENJD_SESSION_WORKING_DIR', 'MISSING'); template_val = r'{{Session.WorkingDirectory}}'; print(f'ENV_SET:{env_val != \"MISSING\"}'); print(f'VALUES_MATCH:{env_val == template_val}')" expected: diff --git a/conformance-tests/2023-09/base/jobs/7.3--session-working-directory.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--session-working-directory.test.yaml index cfd6eb1e..dfd6cfef 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--session-working-directory.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--session-working-directory.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["SESSION_DIR:/"], "expected_windows": ["SESSION_DIR:", ":\\"]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'SESSION_DIR:{{Session.WorkingDirectory}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/7.3--simple-param-substitution.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--simple-param-substitution.test.yaml index 339bbdd8..280b115e 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--simple-param-substitution.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--simple-param-substitution.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Hello World!"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:Hello {{Param.Name}}!') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--single-brace-literal.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--single-brace-literal.test.yaml index aa1d3ecc..4a0cefbc 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--single-brace-literal.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--single-brace-literal.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Hello \u007bParam.Name\u007d"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'RESULT:Hello {Param.Name}') parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--special-characters-in-value.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--special-characters-in-value.test.yaml index 568d64b2..4d843d1d 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--special-characters-in-value.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--special-characters-in-value.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT:Path: /path/with spaces/and$pecial"], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - 'print(''RESULT:Path: {{Param.Path}}'')' parameterDefinitions: diff --git a/conformance-tests/2023-09/base/jobs/7.3--task-file-reference.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--task-file-reference.test.yaml index 3b10a295..dae91ea2 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--task-file-reference.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--task-file-reference.test.yaml @@ -5,6 +5,13 @@ template: - name: Step1 script: embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected_posix": ["SCRIPT_PATH:/"], "expected_windows": ["SCRIPT_PATH:", ":\\"]} - name: myscript type: TEXT data: echo hello @@ -12,6 +19,9 @@ template: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - print(r'SCRIPT_PATH:{{Task.File.myscript}}') expected: diff --git a/conformance-tests/2023-09/base/jobs/7.3--whitespace-in-braces.test.yaml b/conformance-tests/2023-09/base/jobs/7.3--whitespace-in-braces.test.yaml index a82b9796..2829b536 100644 --- a/conformance-tests/2023-09/base/jobs/7.3--whitespace-in-braces.test.yaml +++ b/conformance-tests/2023-09/base/jobs/7.3--whitespace-in-braces.test.yaml @@ -4,10 +4,21 @@ template: steps: - name: Step1 script: + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["RESULT: 4.098 - 10 "], "forbidden": ["\u007b\u007bParam.", "\u007b\u007bTask."]} actions: onRun: command: python args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python - -c - 'print(''RESULT: {{ Param.Float }} - {{ Param.End}} '')' parameterDefinitions: diff --git a/conformance-tests/README.md b/conformance-tests/README.md index 8b69b645..87894bfc 100644 --- a/conformance-tests/README.md +++ b/conformance-tests/README.md @@ -160,8 +160,110 @@ The `taskFailure` assertion is for non-`.invalid.` job tests that succeed at the Use `taskFailure` instead of the `.invalid.test.yaml` suffix when you also want to assert specific `output`/`forbidden` lines on a failing run, or when you need to pin the propagated exit code. +A valid job test with no `taskFailure` MUST exit `0`. Without that requirement the verdict +rests entirely on substring matching, and a case whose task failed still passes as long as +the expected lines turn up anywhere in the output — including inside the failure's own +diagnostics. + The `runOn` field restricts a test to run only on the listed operating systems. If omitted, the test runs on all platforms. Use this when a test requires a platform-specific command (e.g., `cmd` or `powershell` on Windows, `bash` on POSIX). +### Self-asserting job tests + +Many single-task job tests assert their own output, in addition to declaring it in +`expected`. Such a case carries two embedded files and prepends both to its `onRun`, +ahead of the command and args it had before instrumentation: + +```yaml + embeddedFiles: + - name: OpenJDConformanceAssert + type: TEXT + dataFile: _conformance_assert.py + - name: OpenJDConformanceExpect + type: TEXT + data: | + {"expected": ["OUTPUT:1.0"]} + actions: + onRun: + command: python + args: + - '{{Task.File.OpenJDConformanceAssert}}' + - '{{Task.File.OpenJDConformanceExpect}}' + - python + - -c + - print(r'OUTPUT:{{Param.Version}}') +``` + +`_conformance_assert.py` is the wrapper, one flat file shared by every instrumented +case. It runs `sys.argv[2:]`, echoes that output verbatim, compares it against the +lines named in `argv[1]`, and exits non-zero on mismatch. The task's exit status then +carries the verdict. + +**`dataFile` is a harness convention, not part of the job template schema.** It names +a file relative to the conformance-tests root whose contents become the embedded +file's `data`, and a harness must resolve it before submitting the template — +`inline_data_files()` in `run_openjd_cli_tests.py` is ten lines and is the whole of +it. Resolving it is the only preprocessing these tests require. Because `data` is +required on an embedded file, a harness that skips the step submits an invalid +template and fails loudly rather than silently dropping the assertion. + +The expect file is JSON, and mirrors the case's own `expected` block: `expected` and +`forbidden` for lines that hold everywhere, `expected_posix` / `expected_windows` +(and the `forbidden_` equivalents) when the two platforms differ. The wrapper reads +the common list plus the one for the platform it is running on. + +This exists so that an implementation which can only observe **task status** — a +service, rather than a CLI whose stdout the runner can read — still verifies output +*content* rather than only that the task ran and exited `0`. `expected.output` and +`expected.forbidden` are unchanged, so a runner that scans logs is unaffected; both +mechanisms check the same thing by different means. + +Four properties matter if you write or edit one of these: + +- **The original argv is passed through, not embedded in the wrapper.** The + implementation still expands the args list, so a case whose subject *is* that + expansion stays under test — `expr1.3.2--list-flattens-in-args` asserts + `ARG0:--width` … `COUNT:10`, which only holds if the list flattening still happens + where it always did. This is also why the wrapper is generic and the case-specific + data lives beside it: nothing case-specific may displace the case's own argv. +- **The literals are literals.** The expect file holds the already-substituted value + (`OUTPUT:1.0`, not `OUTPUT:{{Param.Version}}`). Injecting them by parameter + reference would make the comparison self-referential: a substitution bug would + corrupt both sides identically and the case would pass. +- **Diagnostics report a line's position, never its text.** + `OPENJD_CONFORMANCE_ASSERT_FAILED: exit=0 missing=[1] of 2 forbidden=[] of 0`. + Printing the literal would place it in the very output a log-scanning runner + searches, so a failing case would satisfy that runner with its own error message. + Read the positions against the case's `expected` block. +- **Braces in a literal are written `\u007b` / `\u007d`.** Embedded file data is itself + a format string and there is no escape for `{{` in a 2023-09 template — a bare + `{{Param.` is a validation error, and `\{\{` and a doubled `{{{{` are not escapes + either. Several cases forbid a literal `{{Param.` in their output; JSON's own + `\uXXXX` escape decodes the braces back after the format-string pass has run, which + is why the expect file is JSON rather than plain argv text. + +On success the wrapper prints `OPENJD_CONFORMANCE_ASSERT_OK: expected, +forbidden`. That line is how you confirm the assertion actually ran, rather than the +case having passed for some other reason — worth checking, since the wrapper is only +reached if the implementation actually executes the task's action. + +Four kinds of case deliberately stay status-only, because a task cannot assert them: + +- **Multi-task cases.** Each task sees only its own output, so a per-task exit code + cannot assert that N lines appeared across N tasks. These need aggregation outside + the job. +- **Cases asserting the implementation's log handling.** `4--openjd-redacted-env` + expects `SECRET_IS:********`, which is the implementation's *redaction* of what the + task printed. The task sees the real value, so nothing it can observe about its own + output distinguishes redacted from leaked. Most of `REDACTED_ENV_VARS` is the same. +- **Cases whose expected output comes from elsewhere.** `7.3--env-file-reference` + asserts a line printed by a job environment's `onEnter`; its task prints something + else entirely. `WRAP_ACTIONS` is excluded wholesale for the same reason plus a + stronger one: `onWrapTaskRun` *replaces* the task action, so a wrapper on the inner + action is usually never executed. +- **Cases whose subject is the args list itself.** `wrap-no-args` asserts that + `WrappedAction.Args` surfaces as an empty list when the wrapped action has no args. + Adding an argument changes the subject. + ## Writing Your Own Test Runner To validate your OpenJD library against these tests: @@ -169,7 +271,11 @@ To validate your OpenJD library against these tests: 1. Parse the test files and naming conventions 2. For `*.yaml` files (without `.invalid`): verify your library accepts them 3. For `*.invalid.yaml` files: verify your library rejects them -4. For job execution tests (`.test.yaml`): extract template/parameters/environments, run the job, verify outputs match `expected` assertions +4. For job execution tests (`.test.yaml`): extract template/parameters/environments, run the job, verify outputs match `expected` assertions, and require a clean exit unless the test declares `expected.taskFailure` +5. Resolve `dataFile` on any embedded file into that file's contents as `data` before + submitting the template — see "Self-asserting job tests". This is the only + preprocessing the tests require, and skipping it makes the affected templates + invalid rather than silently weaker. ### Example Test Runner for openjd CLI diff --git a/conformance-tests/_conformance_assert.py b/conformance-tests/_conformance_assert.py new file mode 100644 index 00000000..856a26c1 --- /dev/null +++ b/conformance-tests/_conformance_assert.py @@ -0,0 +1,60 @@ +# Self-asserting conformance wrapper, shared by every instrumented job test. +# +# A fixture pulls this file in with `dataFile: _conformance_assert.py` on an +# embedded file named OpenJDConformanceAssert; the harness inlines it into that +# file's `data` before submitting the template. See conformance-tests/README.md, +# "Self-asserting job tests", for why this exists and what to preserve when +# editing a case. +# +# Invoked as: +# +# python +# +# argv[1] is the case's OpenJDConformanceExpect embedded file, holding the lines +# the case must and must not print. argv[2:] is the case's original command, +# already expanded by the implementation -- passed through rather than embedded +# here, so a case whose subject IS that expansion stays under test. +import json +import subprocess +import sys + +PLATFORM = "windows" if sys.platform == "win32" else "posix" + + +def _lines(case, key): + """The case's `key` lines: the common ones plus this platform's. + + Mirrors the fixture's own `expected` block, which spells a platform split + as `output` plus `output_posix` / `output_windows`. + """ + return list(case.get(key) or []) + list(case.get("%s_%s" % (key, PLATFORM)) or []) + + +with open(sys.argv[1]) as handle: + case = json.load(handle) +expected = _lines(case, "expected") +forbidden = _lines(case, "forbidden") + +completed = subprocess.run(sys.argv[2:], capture_output=True, text=True) +# Echoed verbatim so a runner that scans logs still sees the same lines. +sys.stdout.write(completed.stdout) +sys.stderr.write(completed.stderr) +output = completed.stdout + completed.stderr + +missing = [i for i, line in enumerate(expected, 1) if line not in output] +present = [i for i, line in enumerate(forbidden, 1) if line in output] +if completed.returncode or missing or present: + # Positions, never the text. Printing a literal would place it in the very + # output a log-scanning runner searches, so a failing case would satisfy + # that runner with its own error message. Read the positions against the + # case's `expected` block. + sys.stderr.write( + "OPENJD_CONFORMANCE_ASSERT_FAILED: exit=%s missing=%s of %d forbidden=%s of %d\n" + % (completed.returncode, missing, len(expected), present, len(forbidden)) + ) + sys.exit(1) +# How you confirm the assertion actually ran, rather than the case having passed +# for some other reason. +sys.stdout.write( + "OPENJD_CONFORMANCE_ASSERT_OK: %d expected, %d forbidden\n" % (len(expected), len(forbidden)) +) diff --git a/conformance-tests/run_openjd_cli_tests.py b/conformance-tests/run_openjd_cli_tests.py index 1118d420..6d9c01c2 100644 --- a/conformance-tests/run_openjd_cli_tests.py +++ b/conformance-tests/run_openjd_cli_tests.py @@ -84,12 +84,42 @@ def should_skip_test(test: dict) -> bool: return OPERATING_SYSTEM not in run_on +def inline_data_files(node) -> None: + """Resolve `dataFile:` on embedded files into the `data:` the spec requires. + + A harness convention, not part of the job template schema: `dataFile` names + a file relative to the conformance-tests root whose contents become the + embedded file's `data`. It exists so the self-asserting wrapper can live in + one flat file (`_conformance_assert.py`) instead of being copied into every + instrumented fixture. See README.md, "Self-asserting job tests". + + Resolving it is the only preprocessing a harness has to do; everything a + case asserts stays in the case. `data` is required on an embedded file, so a + harness that skips this step submits an invalid template and fails loudly + rather than silently dropping the assertion. + """ + if isinstance(node, dict): + for embedded_file in node.get("embeddedFiles") or []: + if isinstance(embedded_file, dict) and "dataFile" in embedded_file: + relative = embedded_file.pop("dataFile") + embedded_file["data"] = (CONFORMANCE_DIR / relative).read_text() + for value in node.values(): + inline_data_files(value) + elif isinstance(node, list): + for value in node: + inline_data_files(value) + + def run_job(test_path: Path) -> tuple[bool, str] | None: test = load_yaml_or_json(test_path) if should_skip_test(test): return None + inline_data_files(test.get("template")) + for environment in test.get("environments", []): + inline_data_files(environment) + expect_failure = ".invalid." in test_path.name with tempfile.TemporaryDirectory() as tmpdir: @@ -139,7 +169,20 @@ def run_job(test_path: Path) -> tuple[bool, str] | None: # propagation is verified for a non-.invalid. test that must still make # assertions about its output. task_failure = expected.get("taskFailure") - if task_failure is not None: + if task_failure is None: + # A valid test with no declared task failure must run clean. Without + # this the verdict rests entirely on substring matching, and a case + # whose task failed still passes as long as the expected lines appear + # somewhere in the output -- including inside the failure's own + # diagnostics. Self-asserting cases depend on this check: they carry + # their verdict in the task's exit status. + if result.returncode != 0: + return False, ( + f"Run exited {result.returncode}; a valid test with no " + "expected.taskFailure must exit 0.\n" + f"--- Actual output ---\n{output}" + ) + else: if result.returncode == 0: return False, ( "Expected task failure (non-zero run exit) but the run "