tvl-depot/tvix/eval/src/tests/tvix_tests
Vincent Ambo 949897651e feat(tvix/eval): implement dynamic keys in recursive attrs
This wires up the new bindings setup logic to be able to thread
through & compile dynamic attributes in recursive attrs.

It seems like we don't actually need to retain the phasing of Nix
exactly, as we can use the phantom mechanism to declare all locals
without making the dynamic ones accessible.

Change-Id: Ic2d43dd8fd97d7ccd56d8c6adf2ff97274cd837a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6781
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-09-29 11:47:47 +00:00
..
eval-okay-access-strange-identifier.exp test(tvix/eval): add a test for accessing "strange" identifiers 2022-09-22 23:07:14 +00:00
eval-okay-access-strange-identifier.nix test(tvix/eval): add a test for accessing "strange" identifiers 2022-09-22 23:07:14 +00:00
eval-okay-arithmetic-float.exp test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-arithmetic-float.nix test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-arithmetic-int.exp test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-arithmetic-int.nix test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-assert-thunk-condition.exp fix(tvix/eval): force condition of an assert 2022-09-20 10:59:38 +00:00
eval-okay-assert-thunk-condition.nix fix(tvix/eval): force condition of an assert 2022-09-20 10:59:38 +00:00
eval-okay-attrs-inherit-literal.exp feat(tvix/eval): implement inherit in attribute set literals 2022-08-31 22:10:40 +00:00
eval-okay-attrs-inherit-literal.nix feat(tvix/eval): implement inherit in attribute set literals 2022-08-31 22:10:40 +00:00
eval-okay-attrs-simple-inherit.exp feat(tvix/eval): Implement inherit from outer scope in attrs 2022-08-30 17:13:27 +00:00
eval-okay-attrs-simple-inherit.nix feat(tvix/eval): Implement inherit from outer scope in attrs 2022-08-30 17:13:27 +00:00
eval-okay-attrs-update-empty-lhs.exp feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update-empty-lhs.nix feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update-empty-rhs.exp feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update-empty-rhs.nix feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update-kv-lhs.exp feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update-kv-lhs.nix feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update.exp feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-attrs-update.nix feat(tvix/eval): implement attrset update (//) operator 2022-08-25 11:34:00 +00:00
eval-okay-builtins-add.exp fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-add.nix fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-attrnames.exp feat(tvix/eval): Support builtins.attrNames 2022-09-15 20:37:57 +00:00
eval-okay-builtins-attrnames.nix feat(tvix/eval): Support builtins.attrNames 2022-09-15 20:37:57 +00:00
eval-okay-builtins-attrvalues.exp feat(tvix/eval): Support builtins.attrValues 2022-09-15 21:13:03 +00:00
eval-okay-builtins-attrvalues.nix feat(tvix/eval): Support builtins.attrValues 2022-09-15 21:13:03 +00:00
eval-okay-builtins-bitand.exp feat(tvix/eval): Support builtins.bitAnd 2022-09-15 21:41:08 +00:00
eval-okay-builtins-bitand.nix feat(tvix/eval): Support builtins.bitAnd 2022-09-15 21:41:08 +00:00
eval-okay-builtins-bitor.exp feat(tvix/eval): Support builtins.bitOr 2022-09-15 21:47:09 +00:00
eval-okay-builtins-bitor.nix feat(tvix/eval): Support builtins.bitOr 2022-09-15 21:47:09 +00:00
eval-okay-builtins-bitxor.exp feat(tvix/eval): Support builtins.bitXor 2022-09-15 21:53:10 +00:00
eval-okay-builtins-bitxor.nix feat(tvix/eval): Support builtins.bitXor 2022-09-15 21:53:10 +00:00
eval-okay-builtins-catAttrs.exp fix(tvix/eval): make sure to force before selecting in catAttrs 2022-09-20 09:59:57 +00:00
eval-okay-builtins-catAttrs.nix fix(tvix/eval): make sure to force before selecting in catAttrs 2022-09-20 09:59:57 +00:00
eval-okay-builtins-compareVersions.exp test(tvix/eval): test word behavior in builtins.compareVersions 2022-09-22 23:06:45 +00:00
eval-okay-builtins-compareVersions.nix test(tvix/eval): test word behavior in builtins.compareVersions 2022-09-22 23:06:45 +00:00
eval-okay-builtins-div.exp fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-div.nix fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-elemat.exp feat(tvix/eval): Support builtins.elemAt 2022-09-17 12:54:14 +00:00
eval-okay-builtins-elemat.nix feat(tvix/eval): Support builtins.elemAt 2022-09-17 12:54:14 +00:00
eval-okay-builtins-filter.exp feat(tvix/eval): implement 'builtins.filter' 2022-09-23 09:55:14 +00:00
eval-okay-builtins-filter.nix feat(tvix/eval): implement 'builtins.filter' 2022-09-23 09:55:14 +00:00
eval-okay-builtins-getattr.exp feat(tvix/eval): Support builtins.getAttr 2022-09-19 16:29:12 +00:00
eval-okay-builtins-getattr.nix feat(tvix/eval): Support builtins.getAttr 2022-09-19 16:29:12 +00:00
eval-okay-builtins-hasattr.exp feat(tvix/eval): Support builtins.hasAttr 2022-09-19 16:18:10 +00:00
eval-okay-builtins-hasattr.nix feat(tvix/eval): Support builtins.hasAttr 2022-09-19 16:18:10 +00:00
eval-okay-builtins-head.exp feat(tvix/eval): Support builtins.head 2022-09-15 16:48:24 +00:00
eval-okay-builtins-head.nix feat(tvix/eval): Support builtins.head 2022-09-15 16:48:24 +00:00
eval-okay-builtins-length.exp feat(tvix/eval): Support builtins.length 2022-09-07 20:56:02 +00:00
eval-okay-builtins-length.nix feat(tvix/eval): Support builtins.length 2022-09-07 20:56:02 +00:00
eval-okay-builtins-lessThan.exp feat(tvix/eval): Support builtins.lessThan 2022-09-22 17:42:01 +00:00
eval-okay-builtins-lessThan.nix feat(tvix/eval): Support builtins.lessThan 2022-09-22 17:42:01 +00:00
eval-okay-builtins-map.exp refactor(tvix/eval): add VM::call_value helper method 2022-09-20 23:48:57 +00:00
eval-okay-builtins-map.nix refactor(tvix/eval): add VM::call_value helper method 2022-09-20 23:48:57 +00:00
eval-okay-builtins-mul.exp fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-mul.nix fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-splitVersion.exp test(tvix/eval): add test cases for builtins.splitVersion 2022-09-21 13:08:07 +00:00
eval-okay-builtins-splitVersion.nix test(tvix/eval): add test cases for builtins.splitVersion 2022-09-21 13:08:07 +00:00
eval-okay-builtins-string-length.exp feat(tvix/eval): add builtins.stringLength 2022-09-22 23:12:29 +00:00
eval-okay-builtins-string-length.nix feat(tvix/eval): add builtins.stringLength 2022-09-22 23:12:29 +00:00
eval-okay-builtins-sub.exp fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-sub.nix fix(tvix/eval): handle thunks in arithmetic builtins 2022-09-22 23:12:29 +00:00
eval-okay-builtins-substring.exp feat(tvix/eval): Support builtins.substring 2022-09-19 00:51:10 +00:00
eval-okay-builtins-substring.nix feat(tvix/eval): Support builtins.substring 2022-09-19 00:51:10 +00:00
eval-okay-builtins-tail.exp feat(tvix/eval): Support builtins.tail 2022-09-19 00:57:11 +00:00
eval-okay-builtins-tail.nix feat(tvix/eval): Support builtins.tail 2022-09-19 00:57:11 +00:00
eval-okay-builtins-toString.exp feat(tvix/eval): implement correct toString behavior 2022-09-15 11:47:30 +00:00
eval-okay-builtins-toString.nix feat(tvix/eval): implement correct toString behavior 2022-09-15 11:47:30 +00:00
eval-okay-builtins-type-of.exp fix(tvix/eval): force value in builtins.typeOf 2022-09-13 22:06:29 +00:00
eval-okay-builtins-type-of.nix fix(tvix/eval): force value in builtins.typeOf 2022-09-13 22:06:29 +00:00
eval-okay-builtins-type-predicates.exp fix(tvix/eval): make sure to deref thunk in type predicate builtins 2022-09-20 10:59:38 +00:00
eval-okay-builtins-type-predicates.nix fix(tvix/eval): make sure to deref thunk in type predicate builtins 2022-09-20 10:59:38 +00:00
eval-okay-closure-self.exp feat(tvix/eval): implement capture of self-recursive upvalues 2022-09-06 07:29:25 +00:00
eval-okay-closure-self.nix feat(tvix/eval): implement capture of self-recursive upvalues 2022-09-06 07:29:25 +00:00
eval-okay-closure-with-shadowing.exp fix(tvix/eval): correctly resolve dynamic upvalues one scope up 2022-09-06 07:29:25 +00:00
eval-okay-closure-with-shadowing.nix fix(tvix/eval): correctly resolve dynamic upvalues one scope up 2022-09-06 07:29:25 +00:00
eval-okay-cmp-float-false.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-float-false.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-float-true.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-float-true.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-int-false.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-int-false.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-int-true.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-int-true.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-num-false.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-num-false.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-num-true.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-num-true.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-str-false.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-str-false.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-str-true.exp feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-cmp-str-true.nix feat(tvix/eval): implement binary comparison operators 2022-08-25 12:07:30 +00:00
eval-okay-concat-lists.exp feat(tvix/eval): implement list concatenation 2022-08-25 12:07:30 +00:00
eval-okay-concat-lists.nix feat(tvix/eval): implement list concatenation 2022-08-25 12:07:30 +00:00
eval-okay-concat-strings.exp feat(tvix/eval): implement string concatenation 2022-08-25 11:11:27 +00:00
eval-okay-concat-strings.nix feat(tvix/eval): implement string concatenation 2022-08-25 11:11:27 +00:00
eval-okay-contains-nested-non-set.exp fix(tvix/eval): ? operator should use OpAttrsOrNotFound 2022-08-30 17:13:27 +00:00
eval-okay-contains-nested-non-set.nix fix(tvix/eval): ? operator should use OpAttrsOrNotFound 2022-08-30 17:13:27 +00:00
eval-okay-contains-non-set.exp fix(tvix/eval): allow use of ? operator on non-set types 2022-08-30 17:13:27 +00:00
eval-okay-contains-non-set.nix fix(tvix/eval): allow use of ? operator on non-set types 2022-08-30 17:13:27 +00:00
eval-okay-deeply-nested-attrs.exp fix(tvix/eval): emit correct count in OpAttrPath 2022-08-30 17:13:27 +00:00
eval-okay-deeply-nested-attrs.nix fix(tvix/eval): emit correct count in OpAttrPath 2022-08-30 17:13:27 +00:00
eval-okay-deeply-nested-with-closure.exp fix(tvix/eval): correctly thread through dynamic upvalues 2022-09-06 07:45:43 +00:00
eval-okay-deeply-nested-with-closure.nix fix(tvix/eval): correctly thread through dynamic upvalues 2022-09-06 07:45:43 +00:00
eval-okay-deeply-nested-with.exp fix(tvix/eval): correctly resolve dynamic upvalues one scope up 2022-09-06 07:29:25 +00:00
eval-okay-deeply-nested-with.nix fix(tvix/eval): correctly resolve dynamic upvalues one scope up 2022-09-06 07:29:25 +00:00
eval-okay-deferred-with.exp fix(tvix/eval): thunk all uses of with 2022-09-11 12:26:23 +00:00
eval-okay-deferred-with.nix fix(tvix/eval): thunk all uses of with 2022-09-11 12:26:23 +00:00
eval-okay-empty-rec-inherit.exp fix(tvix/eval): manually count entries in recursive scopes 2022-09-22 23:23:47 +00:00
eval-okay-empty-rec-inherit.nix fix(tvix/eval): manually count entries in recursive scopes 2022-09-22 23:23:47 +00:00
eval-okay-eq-float.exp feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-eq-float.nix feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-eq-int.exp feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-eq-int.nix feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-fib.exp fix(tvix/eval): instantiate *new* closures from blueprints each time 2022-09-06 07:45:43 +00:00
eval-okay-fib.nix fix(tvix/eval): instantiate *new* closures from blueprints each time 2022-09-06 07:45:43 +00:00
eval-okay-fix.exp feat(tvix/eval): thunk binary operations and select expressions 2022-09-08 20:17:26 +00:00
eval-okay-fix.nix feat(tvix/eval): thunk binary operations and select expressions 2022-09-08 20:17:26 +00:00
eval-okay-float-repr.exp test(tvix/eval): add a test for float representation 2022-09-03 00:49:45 +00:00
eval-okay-float-repr.nix test(tvix/eval): add a test for float representation 2022-09-03 00:49:45 +00:00
eval-okay-inherit-string-ident.exp fix(tvix/eval): support string identifiers in inherits 2022-09-22 23:07:14 +00:00
eval-okay-inherit-string-ident.nix fix(tvix/eval): support string identifiers in inherits 2022-09-22 23:07:14 +00:00
eval-okay-lambda-identity.exp feat(tvix/eval): compile function applications 2022-09-02 12:31:04 +00:00
eval-okay-lambda-identity.nix feat(tvix/eval): compile function applications 2022-09-02 12:31:04 +00:00
eval-okay-late-binding-closure.exp feat(tvix/eval): emit OpFinalise when local scopes are complete 2022-09-06 14:58:52 +00:00
eval-okay-late-binding-closure.nix feat(tvix/eval): emit OpFinalise when local scopes are complete 2022-09-06 14:58:52 +00:00
eval-okay-late-binding.exp test(tvix/eval): test very simple late-bound identifier access 2022-09-07 15:25:59 +00:00
eval-okay-late-binding.nix test(tvix/eval): test very simple late-bound identifier access 2022-09-07 15:25:59 +00:00
eval-okay-lazy-assert.exp fix(tvix/eval): wrap asserts in a thunk 2022-09-11 12:26:23 +00:00
eval-okay-lazy-assert.nix fix(tvix/eval): wrap asserts in a thunk 2022-09-11 12:26:23 +00:00
eval-okay-lazy-equality.exp fix(tvix/eval): Force thunks during equality comparison 2022-09-18 22:08:43 +00:00
eval-okay-lazy-equality.nix fix(tvix/eval): Force thunks during equality comparison 2022-09-18 22:08:43 +00:00
eval-okay-lazy-with.exp test(tvix/eval): add a test for lazy evaluation of with namespace 2022-09-17 18:58:42 +00:00
eval-okay-lazy-with.nix test(tvix/eval): add a test for lazy evaluation of with namespace 2022-09-17 18:58:42 +00:00
eval-okay-legacy-let-fix.exp test(tvix/eval): add tests for legacy let syntax 2022-09-16 18:13:26 +00:00
eval-okay-legacy-let-fix.nix test(tvix/eval): add tests for legacy let syntax 2022-09-16 18:13:26 +00:00
eval-okay-legacy-let.exp test(tvix/eval): add tests for legacy let syntax 2022-09-16 18:13:26 +00:00
eval-okay-legacy-let.nix test(tvix/eval): add tests for legacy let syntax 2022-09-16 18:13:26 +00:00
eval-okay-let-identifiers.exp test(tvix/eval): add basic tests for let expressions 2022-08-29 20:13:26 +00:00
eval-okay-let-identifiers.nix test(tvix/eval): add basic tests for let expressions 2022-08-29 20:13:26 +00:00
eval-okay-let-inherit-from-later-bound.exp fix(tvix/eval): declare let inherit (from) locals before compiling 2022-09-11 12:26:23 +00:00
eval-okay-let-inherit-from-later-bound.nix fix(tvix/eval): declare let inherit (from) locals before compiling 2022-09-11 12:26:23 +00:00
eval-okay-let-inherit.exp fix(tvix/eval): declare let inherit (from) locals before compiling 2022-09-11 12:26:23 +00:00
eval-okay-let-inherit.nix fix(tvix/eval): declare let inherit (from) locals before compiling 2022-09-11 12:26:23 +00:00
eval-okay-let-sibling-access.exp test(tvix/eval): add basic tests for let expressions 2022-08-29 20:13:26 +00:00
eval-okay-let-sibling-access.nix test(tvix/eval): add basic tests for let expressions 2022-08-29 20:13:26 +00:00
eval-okay-let-useful-plain-inherit-mixed.exp fix(tvix/eval): place plain inherits in correct stack slots 2022-09-11 12:26:23 +00:00
eval-okay-let-useful-plain-inherit-mixed.nix fix(tvix/eval): place plain inherits in correct stack slots 2022-09-11 12:26:23 +00:00
eval-okay-let-useful-plain-inherit.exp test(tvix/eval): test “useful” plain inherits 2022-09-11 12:26:23 +00:00
eval-okay-let-useful-plain-inherit.nix test(tvix/eval): test “useful” plain inherits 2022-09-11 12:26:23 +00:00
eval-okay-manual-rec.exp fix(tvix/eval): thunk all uses of with 2022-09-11 12:26:23 +00:00
eval-okay-manual-rec.nix fix(tvix/eval): thunk all uses of with 2022-09-11 12:26:23 +00:00
eval-okay-multiline-string.exp test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-multiline-string.nix test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-multiple-nested-attrs.exp test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-multiple-nested-attrs.nix test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-mutually-recursive-let-binding.exp test(tvix/eval): add test for mutually recursive let bindings 2022-09-11 12:26:23 +00:00
eval-okay-mutually-recursive-let-binding.nix test(tvix/eval): add test for mutually recursive let bindings 2022-09-11 12:26:23 +00:00
eval-okay-ne-int.exp feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-ne-int.nix feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-ne-string.exp feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-ne-string.nix feat(tvix): implement not-equals (!=) operator 2022-08-25 11:34:00 +00:00
eval-okay-nested-closure.exp test(tvix/eval): add tests for very simple closures 2022-09-04 17:40:10 +00:00
eval-okay-nested-closure.nix test(tvix/eval): add tests for very simple closures 2022-09-04 17:40:10 +00:00
eval-okay-nested-deferred-upvalue.exp test(tvix/eval): add a test case for nested, deferred upvalues 2022-09-06 14:58:52 +00:00
eval-okay-nested-deferred-upvalue.nix test(tvix/eval): add a test case for nested, deferred upvalues 2022-09-06 14:58:52 +00:00
eval-okay-nested-has-attrs.exp fix(tvix/eval): force left argument of ? before checking for attrs 2022-09-13 22:06:29 +00:00
eval-okay-nested-has-attrs.nix fix(tvix/eval): force left argument of ? before checking for attrs 2022-09-13 22:06:29 +00:00
eval-okay-nested-let-slots.exp test(tvix/eval): add test for stack slot accounting edge-case 2022-09-08 20:17:26 +00:00
eval-okay-nested-let-slots.nix test(tvix/eval): add test for stack slot accounting edge-case 2022-09-08 20:17:26 +00:00
eval-okay-nested-let.exp refactor(tvix/eval): simplify let ... in ... before recursion 2022-08-31 22:42:48 +00:00
eval-okay-nested-let.nix refactor(tvix/eval): simplify let ... in ... before recursion 2022-08-31 22:42:48 +00:00
eval-okay-nested-poisoning.exp fix(tvix/eval): inherit scope poisoning data in nested contexts 2022-09-08 07:59:15 +00:00
eval-okay-nested-poisoning.nix fix(tvix/eval): inherit scope poisoning data in nested contexts 2022-09-08 07:59:15 +00:00
eval-okay-nested-set-thunks.exp fix(tvix/eval): ensure all thunks are forced in nested selects 2022-09-18 22:16:04 +00:00
eval-okay-nested-set-thunks.nix fix(tvix/eval): ensure all thunks are forced in nested selects 2022-09-18 22:16:04 +00:00
eval-okay-nested-thunks.exp feat(tvix/eval): always emit OpForce as the last instruction 2022-09-07 15:25:59 +00:00
eval-okay-nested-thunks.nix feat(tvix/eval): always emit OpForce as the last instruction 2022-09-07 15:25:59 +00:00
eval-okay-nested-with.exp test(tvix/eval): add basic tests for with expressions 2022-08-31 22:42:48 +00:00
eval-okay-nested-with.nix test(tvix/eval): add basic tests for with expressions 2022-08-31 22:42:48 +00:00
eval-okay-or-operator-default.exp test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator-default.nix test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator-nested-default.exp test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator-nested-default.nix test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator-nested.exp test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator-nested.nix test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator-non-set.exp fix(tvix/eval): or should handle non-attrset values, too 2022-08-30 17:13:27 +00:00
eval-okay-or-operator-non-set.nix fix(tvix/eval): or should handle non-attrset values, too 2022-08-30 17:13:27 +00:00
eval-okay-or-operator.exp test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-or-operator.nix test(tvix/eval): add tests for the attrset or operator 2022-08-26 16:05:09 +00:00
eval-okay-overlapping-nested-attrs.exp test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-overlapping-nested-attrs.nix test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-poisoned-scopes.exp feat(tvix/eval): implement scope poisoning for true/false/null 2022-08-31 22:42:48 +00:00
eval-okay-poisoned-scopes.nix feat(tvix/eval): implement scope poisoning for true/false/null 2022-08-31 22:42:48 +00:00
eval-okay-rec-dynamic-keys.exp feat(tvix/eval): implement dynamic keys in recursive attrs 2022-09-29 11:47:47 +00:00
eval-okay-rec-dynamic-keys.nix feat(tvix/eval): implement dynamic keys in recursive attrs 2022-09-29 11:47:47 +00:00
eval-okay-recursive-attrs-all-features.exp test(tvix/eval): add some tests for recursive attribute sets 2022-09-16 18:13:26 +00:00
eval-okay-recursive-attrs-all-features.nix test(tvix/eval): add some tests for recursive attribute sets 2022-09-16 18:13:26 +00:00
eval-okay-simple-closure.exp test(tvix/eval): add tests for very simple closures 2022-09-04 17:40:10 +00:00
eval-okay-simple-closure.nix test(tvix/eval): add tests for very simple closures 2022-09-04 17:40:10 +00:00
eval-okay-simple-interpol.exp feat(tvix/eval): implement string concatenation 2022-08-25 11:11:27 +00:00
eval-okay-simple-interpol.nix feat(tvix/eval): implement string concatenation 2022-08-25 11:11:27 +00:00
eval-okay-simple-let.exp test(tvix/eval): add basic tests for let expressions 2022-08-29 20:13:26 +00:00
eval-okay-simple-let.nix test(tvix/eval): add basic tests for let expressions 2022-08-29 20:13:26 +00:00
eval-okay-simple-nested-attrs.exp test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-simple-nested-attrs.nix test(tvix/eval): add some eval-okay-* tests for trivial types 2022-08-25 11:07:16 +00:00
eval-okay-simple-recursive-attrs.exp test(tvix/eval): add some tests for recursive attribute sets 2022-09-16 18:13:26 +00:00
eval-okay-simple-recursive-attrs.nix test(tvix/eval): add some tests for recursive attribute sets 2022-09-16 18:13:26 +00:00
eval-okay-simple-with.exp test(tvix/eval): add basic tests for with expressions 2022-08-31 22:42:48 +00:00
eval-okay-simple-with.nix test(tvix/eval): add basic tests for with expressions 2022-08-31 22:42:48 +00:00
eval-okay-thunked-string-interpolation.exp fix(tvix/eval): thunk string interpolation 2022-09-15 15:52:53 +00:00
eval-okay-thunked-string-interpolation.nix fix(tvix/eval): thunk string interpolation 2022-09-15 15:52:53 +00:00
eval-okay-thunked-with.exp fix(tvix/eval): account for attrset temporaries during construction 2022-09-11 12:04:27 +00:00
eval-okay-thunked-with.nix fix(tvix/eval): account for attrset temporaries during construction 2022-09-11 12:04:27 +00:00
eval-okay-toplevel-finaliser.exp fix(tvix/eval): consider local depth when deciding to defer 2022-09-08 20:17:26 +00:00
eval-okay-toplevel-finaliser.nix fix(tvix/eval): consider local depth when deciding to defer 2022-09-08 20:17:26 +00:00
eval-okay-unpoison-scope.exp feat(tvix/eval): implement scope poisoning for true/false/null 2022-08-31 22:42:48 +00:00
eval-okay-unpoison-scope.nix feat(tvix/eval): implement scope poisoning for true/false/null 2022-08-31 22:42:48 +00:00
eval-okay-useless-inherit-with.exp fix(tvix/eval): consider let ... inherit ... in dynamic scopes 2022-09-02 14:13:00 +00:00
eval-okay-useless-inherit-with.nix fix(tvix/eval): consider let ... inherit ... in dynamic scopes 2022-09-02 14:13:00 +00:00
eval-okay-with-closure.exp feat(tvix/eval): implement upvalue resolution in with scopes 2022-09-04 17:40:10 +00:00
eval-okay-with-closure.nix feat(tvix/eval): implement upvalue resolution in with scopes 2022-09-04 17:40:10 +00:00
eval-okay-with-in-dynamic-key.exp fix(tvix/eval): account for attrset temporaries during construction 2022-09-11 12:04:27 +00:00
eval-okay-with-in-dynamic-key.nix fix(tvix/eval): account for attrset temporaries during construction 2022-09-11 12:04:27 +00:00
eval-okay-with-in-list.exp fix(tvix/eval): correctly account for slots during list construction 2022-09-11 12:16:46 +00:00
eval-okay-with-in-list.nix fix(tvix/eval): correctly account for slots during list construction 2022-09-11 12:16:46 +00:00
identity-bool-false.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-bool-true.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-dollar-escape.nix fix(tvix/eval): correctly escape ${ in strings 2022-09-03 00:47:58 +00:00
identity-empty-attrs.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-empty-list.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-flat-attrs.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-float.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-heterogeneous-list.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-homogeneous-float-list.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-homogeneous-int-list.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-homogeneous-string-list.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-int.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-kv-attrs.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-nested-attrs.nix feat(tvix/eval): semi-strictly evaluate output values of the VM 2022-09-07 19:08:56 +00:00
identity-null.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-signed-float.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-signed-int.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
identity-string.nix test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00
README.md test(tvix/eval): add identity tests for literal evaluation 2022-08-24 23:11:12 +00:00

These tests are "native" to Tvix and exist in addition to the Nix test suite.

All of these are straightforward code snippets which are expected to produce a certain result.

identity-* tests

Files named identity-*.nix contain code that is supposed to produce itself exactly after evaluation.

These are useful for testing literals.

eval-okay-* tests

Files named eval-okay-*.nix contain code which is supposed to evaluate to the output in the corresponding eval-okay-*.exp file.

This convention is taken from the original Nix test suite.