tvl-depot/tvix/eval/src/tests/tvix_tests
sterni e04ccc9354 fix(tvix/eval): make sure to deref thunk in type predicate builtins
Previously we only matched the outer constructor after forcing which
would mean that we would always return `false` if the inspected value
was a thunk, regardless what value would be present inside.

Change-Id: I361ea6e855e23ef8e5b59098a50b9cd59253803f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6692
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-09-20 10:59:38 +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-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 feat(tvix/eval): Support builtins.{add,sub} 2022-09-07 20:56:02 +00:00
eval-okay-builtins-add.nix feat(tvix/eval): Support builtins.{add,sub} 2022-09-07 20:56:02 +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 fix(tvix/eval): move compareVersions test so cargo test finds them 2022-09-19 09:58:14 +00:00
eval-okay-builtins-compareVersions.nix fix(tvix/eval): move compareVersions test so cargo test finds them 2022-09-19 09:58:14 +00:00
eval-okay-builtins-div.exp feat(tvix/eval): Support builtins.{mul,div} 2022-09-07 20:56:02 +00:00
eval-okay-builtins-div.nix feat(tvix/eval): Support builtins.{mul,div} 2022-09-07 20:56:02 +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-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-mul.exp feat(tvix/eval): Support builtins.{mul,div} 2022-09-07 20:56:02 +00:00
eval-okay-builtins-mul.nix feat(tvix/eval): Support builtins.{mul,div} 2022-09-07 20:56:02 +00:00
eval-okay-builtins-sub.exp feat(tvix/eval): Support builtins.{add,sub} 2022-09-07 20:56:02 +00:00
eval-okay-builtins-sub.nix feat(tvix/eval): Support builtins.{add,sub} 2022-09-07 20:56:02 +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-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-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-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.