tvl-depot/tvix/eval/src/tests/tvix_tests
Griffin Smith 2592113435 fix(tvix/eval): Thunk if expr
Since the body of an `if` expr can refer to deferred upvalues, it needs
to be thunked so when we actually compile those deferred upvalues we
have something for the finalize op to point at. Without this all sorts
of weird things can happen due to the finalize op being run in the wrong
lambda context, up to and including a panic.

Change-Id: I040d5e1a7232fd841cfa4953539898fa49cbbb83
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6929
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2022-10-10 20:35:11 +00:00
..
directory feat(tvix/tests): Import default.nix inside directory 2022-10-08 19:02:25 +00:00
readDir feat(tvix/eval): Support builtins.readDir 2022-10-10 19:36:49 +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-add-paths.exp feat(tvix/eval): Allow adding strings to paths 2022-10-10 20:23:41 +00:00
eval-okay-add-paths.nix feat(tvix/eval): Allow adding strings to paths 2022-10-10 20:23:41 +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-all.exp feat(tvix/eval): implement builtins.all 2022-10-03 17:39:09 +00:00
eval-okay-builtins-all.nix feat(tvix/eval): implement builtins.all 2022-10-03 17:39:09 +00:00
eval-okay-builtins-any.exp feat(tvix/eval): implement builtins.any 2022-10-03 17:39:09 +00:00
eval-okay-builtins-any.nix feat(tvix/eval): implement builtins.any 2022-10-03 17:39:09 +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-concat-lists.exp feat(tvix/eval): implement builtins.concatLists 2022-10-03 07:53:21 +00:00
eval-okay-builtins-concat-lists.nix feat(tvix/eval): implement builtins.concatLists 2022-10-03 07:53:21 +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 refactor(tvix/eval): merge all bindings creation logic 2022-09-29 11:47:47 +00:00
eval-okay-builtins-type-of.nix refactor(tvix/eval): merge all bindings creation logic 2022-09-29 11:47:47 +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-concatmap.exp feat(tvix/eval): Implement builtins.concatMap 2022-10-10 13:54:16 +00:00
eval-okay-concatmap.nix feat(tvix/eval): Implement builtins.concatMap 2022-10-10 13:54:16 +00:00
eval-okay-concatstringssep.exp feat(tvix/eval): Implement builtins.concatStringsSep 2022-10-10 20:23:41 +00:00
eval-okay-concatstringssep.nix feat(tvix/eval): Implement builtins.concatStringsSep 2022-10-10 20:23:41 +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 test(tvix/eval): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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 test(tvix/eval): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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-elem.exp feat(tvix/eval): Implement builtins.elem 2022-10-10 17:42:48 +00:00
eval-okay-elem.nix feat(tvix/eval): Implement builtins.elem 2022-10-10 17:42:48 +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-foldl.exp feat(tvix/eval): Implement builtins.foldl' 2022-10-10 15:26:29 +00:00
eval-okay-foldl.nix feat(tvix/eval): Implement builtins.foldl' 2022-10-10 15:26:29 +00:00
eval-okay-functor-call.exp feat(tvix/eval): implement tail-calling of __functor attributes 2022-10-03 07:50:41 +00:00
eval-okay-functor-call.nix feat(tvix/eval): implement tail-calling of __functor attributes 2022-10-03 07:50:41 +00:00
eval-okay-genlist.exp feat(tvix/eval): Implement builtins.genList 2022-10-10 13:54:16 +00:00
eval-okay-genlist.nix feat(tvix/eval): Implement builtins.genList 2022-10-10 13:54:16 +00:00
eval-okay-import.exp feat(tvix/tests): Import default.nix inside directory 2022-10-08 19:02:25 +00:00
eval-okay-import.nix feat(tvix/tests): Import default.nix inside directory 2022-10-08 19:02:25 +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 when comparing against ground vals 2022-10-08 19:02:25 +00:00
eval-okay-lazy-equality.nix fix(tvix/eval): Force thunks when comparing against ground vals 2022-10-08 19:02:25 +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-in-with.exp fix(tvix/eval): end scope after compiling legacy let bindings 2022-10-08 19:10:09 +00:00
eval-okay-legacy-let-in-with.nix fix(tvix/eval): end scope after compiling legacy let bindings 2022-10-08 19:10:09 +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-listtoattrs.exp feat(tvix/eval): Implement builtins.listToAttrs 2022-10-09 22:18:53 +00:00
eval-okay-listtoattrs.nix feat(tvix/eval): Implement builtins.listToAttrs 2022-10-09 22:18:53 +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-merge-nested-attrs.exp feat(tvix/eval): merge attribute sets in bindings 2022-09-29 17:46:02 +00:00
eval-okay-merge-nested-attrs.nix feat(tvix/eval): merge attribute sets in bindings 2022-09-29 17:46:02 +00:00
eval-okay-merge-nested-rec-attrs.exp feat(tvix/eval): merge attribute sets in bindings 2022-09-29 17:46:02 +00:00
eval-okay-merge-nested-rec-attrs.nix feat(tvix/eval): merge attribute sets in bindings 2022-09-29 17:46:02 +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): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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 test(tvix/eval): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +00:00
eval-okay-nested-keys-let.exp test(tvix/eval): add simple nested key tests in let & rec attrs 2022-09-30 12:31:14 +00:00
eval-okay-nested-keys-let.nix test(tvix/eval): add simple nested key tests in let & rec attrs 2022-09-30 12:31:14 +00:00
eval-okay-nested-keys-rec.exp test(tvix/eval): add simple nested key tests in let & rec attrs 2022-09-30 12:31:14 +00:00
eval-okay-nested-keys-rec.nix test(tvix/eval): add simple nested key tests in let & rec attrs 2022-09-30 12:31:14 +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-nix-version-cmp.exp feat(tvix/eval): implement tvix's user-agent, err, nixVersion 2022-10-05 13:07:55 +00:00
eval-okay-nix-version-cmp.nix feat(tvix/eval): implement tvix's user-agent, err, nixVersion 2022-10-05 13:07:55 +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): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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 test(tvix/eval): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +00:00
eval-okay-pathexists.exp feat(tvix/eval): Implement builtins.pathExists 2022-10-10 20:23:41 +00:00
eval-okay-pathexists.nix feat(tvix/eval): Implement builtins.pathExists 2022-10-10 20:23:41 +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-readDir.exp feat(tvix/eval): Support builtins.readDir 2022-10-10 19:36:49 +00:00
eval-okay-readDir.nix feat(tvix/eval): Support builtins.readDir 2022-10-10 19:36:49 +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-rec-nested-access.exp fix(tvix/eval): fix thunk borrowing error in force_for_output 2022-09-30 12:31:14 +00:00
eval-okay-rec-nested-access.nix fix(tvix/eval): fix thunk borrowing error in force_for_output 2022-09-30 12:31:14 +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): reactivate nested key tests in plain attribute sets 2022-09-30 12:31:14 +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-if.exp fix(tvix/eval): Thunk if expr 2022-10-10 20:35:11 +00:00
eval-okay-thunked-if.nix fix(tvix/eval): Thunk if expr 2022-10-10 20:35:11 +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-tryeval.exp feat(tvix/eval): Implement builtins.tryEval 2022-10-10 20:31:10 +00:00
eval-okay-tryeval.nix feat(tvix/eval): Implement builtins.tryEval 2022-10-10 20:31:10 +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
lib.nix feat(tvix/eval): Implement builtins.elem 2022-10-10 17:42:48 +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.