snix/tvix/eval/src/tests/tvix_tests
sterni 8adc9c56f2 docs(tvix): document when pointer equality is preserved in C++ Nix
This explicitly documents behavior of C++ Nix that goes against the
intuition you'd gather from this document: that e.g. a simple select
from an attribute set causes a value to no longer be pointer equal to
its former self.

The point of documenting this is that we can show in a to be written
section on the use of pointer equality in nixpkgs that pointer equality
is only needed in a limited sense for evaluating it (C++ Nix's exterior
pointer equality). Tvix's pointer equality is far more powerful since
value identity preserving operations also preserve pointer equality,
generally speaking (this is because we implement interior pointer
equality in my made up terminology). This should eventually also be
documented.

Change-Id: I6ce7ef2d67b012f5ebc92f9e81bba33fb9dce7d0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8856
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
2023-07-11 16:17:42 +00:00
..
directory feat(tvix/tests): Import default.nix inside directory 2022-10-08 19:02:25 +00:00
notyetpassing docs(tvix): document when pointer equality is preserved in C++ Nix 2023-07-11 16:17:42 +00:00
readDir feat(tvix/eval): Support builtins.readDir 2022-10-10 19:36:49 +00:00
eval-fail-builtins-substring-negative-start.nix test(tvix/eval): builtins.substring's behavior with negative args 2023-06-12 09:38:08 +00:00
eval-fail-builtins-thunk-error.nix fix(tvix/eval): use top-level span for force_with_output 2022-10-22 17:01:41 +00:00
eval-fail-builtins-tojson-tostring-notcallable.nix fix(tvix/eval): handle __toString when JSON-serialising attrsets 2023-03-13 20:30:59 +00:00
eval-fail-builtins-tojson-tostring-strong.nix fix(tvix/eval): handle __toString when JSON-serialising attrsets 2023-03-13 20:30:59 +00:00
eval-fail-closed-formals.nix feat(tvix/eval): Validate closed formals 2022-10-17 11:29:49 +00:00
eval-fail-deep-forced-thunk-error.nix fix(tvix/eval): use top-level span for force_with_output 2022-10-22 17:01:41 +00:00
eval-fail-deepseq.nix feat(tvix/eval): Implement builtins.deepSeq 2022-10-22 18:11:55 +00:00
eval-fail-division-by-zero-float.nix test(tvix/eval): move division by zero tests into tvix_tests 2023-06-14 16:22:07 +00:00
eval-fail-division-by-zero-int.nix test(tvix/eval): move division by zero tests into tvix_tests 2023-06-14 16:22:07 +00:00
eval-fail-foldlStrict-strict-op-application.nix fix(tvix/eval): bring foldl' strictness in line with C++ Nix 2022-10-15 14:12:23 +00:00
eval-fail-force-before-value-pointer-equality.nix test(tvix/eval): check inner forcing despite declaring pointer 2022-12-02 14:41:50 +00:00
eval-fail-function-formals-typecheck.nix fix(tvix/eval): type check function argument with set pattern 2023-06-07 15:17:20 +00:00
eval-fail-getEnv-coercion.nix fix(tvix/eval): don't coerce variable name to string 2022-10-16 09:20:02 +00:00
eval-fail-infinite-recursion.nix test(tvix/eval): add test for infinite recursion detection 2023-03-13 20:30:59 +00:00
eval-fail-outer-value-never-pointer-equal.nix test(tvix/eval): check inner forcing despite declaring pointer 2022-12-02 14:41:50 +00:00
eval-fail-parsedrvname-coerce.nix fix(tvix/eval): parseDrvName should not coerce, and xfail test 2022-10-13 17:42:22 +00:00
eval-fail-remove.nix feat(tvix/eval): Implement builtins.removeAttrs 2022-10-11 00:33:39 +00:00
eval-fail-seq.nix feat(tvix/eval): Implement builtins.seq 2022-10-17 11:04:17 +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-basenameof.exp feat(tvix/eval): implement builtins.baseNameOf 2022-10-13 17:43:17 +00:00
eval-okay-basenameof.nix feat(tvix/eval): implement builtins.baseNameOf 2022-10-13 17:43:17 +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-builtins.exp feat(tvix/eval): add builtins to builtins 2023-01-17 10:38:06 +00:00
eval-okay-builtins-builtins.nix feat(tvix/eval): add builtins to builtins 2023-01-17 10:38:06 +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-genericClosure-pointer-equality.exp test(tvix/eval): genericClosure (pointer) comparison support 2023-06-15 11:01:06 +00:00
eval-okay-builtins-genericClosure-pointer-equality.nix test(tvix/eval): genericClosure (pointer) comparison support 2023-06-15 11:01:06 +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-groupby-thunk.exp test(tvix/eval): add a test case for groupBy with thunks 2022-11-04 01:46:27 +00:00
eval-okay-builtins-groupby-thunk.nix test(tvix/eval): add a test case for groupBy with thunks 2022-11-04 01:46:27 +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-partition.exp feat(tvix/eval): implement builtins.partition 2022-10-16 22:51:53 +00:00
eval-okay-builtins-partition.nix feat(tvix/eval): implement builtins.partition 2022-10-16 22:51:53 +00:00
eval-okay-builtins-replaceStrings.exp feat(tvix/eval): add builtins.replaceStrings 2022-10-28 10:21:35 +00:00
eval-okay-builtins-replaceStrings.nix feat(tvix/eval): add builtins.replaceStrings 2022-10-28 10:21:35 +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-coerce.exp fix(tvix/eval): use coerce_to_string in builtins.substring 2023-03-17 19:17:29 +00:00
eval-okay-builtins-substring-coerce.nix fix(tvix/eval): use coerce_to_string in builtins.substring 2023-03-17 19:17:29 +00:00
eval-okay-builtins-substring-negative-length.exp test(tvix/eval): builtins.substring's behavior with negative args 2023-06-12 09:38:08 +00:00
eval-okay-builtins-substring-negative-length.nix test(tvix/eval): builtins.substring's behavior with negative args 2023-06-12 09:38:08 +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-thunked-function-calls.exp fix(tvix): don't call function eagerly in genList, map & mapAttrs 2023-05-26 22:35:39 +00:00
eval-okay-builtins-thunked-function-calls.nix fix(tvix): don't call function eagerly in genList, map & mapAttrs 2023-05-26 22:35:39 +00:00
eval-okay-builtins-tojson-literals.exp feat(tvix/eval): implement builtins.toJSON 2023-01-12 10:42:44 +00:00
eval-okay-builtins-tojson-literals.nix feat(tvix/eval): implement builtins.toJSON 2023-01-12 10:42:44 +00:00
eval-okay-builtins-tojson-outpath-nested.exp fix(tvix/eval): handle toJSON on attribute sets with outPath 2023-03-13 20:30:59 +00:00
eval-okay-builtins-tojson-outpath-nested.nix fix(tvix/eval): handle toJSON on attribute sets with outPath 2023-03-13 20:30:59 +00:00
eval-okay-builtins-tojson-outpath.exp fix(tvix/eval): handle toJSON on attribute sets with outPath 2023-03-13 20:30:59 +00:00
eval-okay-builtins-tojson-outpath.nix fix(tvix/eval): handle toJSON on attribute sets with outPath 2023-03-13 20:30:59 +00:00
eval-okay-builtins-tojson-thunks.exp feat(tvix/eval): implement builtins.toJSON 2023-01-12 10:42:44 +00:00
eval-okay-builtins-tojson-thunks.nix feat(tvix/eval): implement builtins.toJSON 2023-01-12 10:42:44 +00:00
eval-okay-builtins-tojson-tostring.exp fix(tvix/eval): handle __toString when JSON-serialising attrsets 2023-03-13 20:30:59 +00:00
eval-okay-builtins-tojson-tostring.nix fix(tvix/eval): handle __toString when JSON-serialising attrsets 2023-03-13 20:30:59 +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-ceil.exp feat(tvix/eval): add builtins.{floor,ceil} 2022-10-25 08:46:37 +00:00
eval-okay-ceil.nix feat(tvix/eval): add builtins.{floor,ceil} 2022-10-25 08:46:37 +00:00
eval-okay-closure-pointer-compare.exp test(tvix/eval): add eval-okay-closure-pointer-compare 2022-11-25 00:48:31 +00:00
eval-okay-closure-pointer-compare.nix test(tvix/eval): add eval-okay-closure-pointer-compare 2022-11-25 00:48:31 +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-coerce-opadd.exp fix(tvix/eval): OpAdd must weakly stringify if either arg is string 2022-11-26 19:37:42 +00:00
eval-okay-coerce-opadd.nix fix(tvix/eval): OpAdd must weakly stringify if either arg is string 2022-11-26 19:37:42 +00:00
eval-okay-compare-lists.exp feat(tvix/eval): Implement comparison for lists 2022-10-29 10:45:51 +00:00
eval-okay-compare-lists.nix feat(tvix/eval): Implement comparison for lists 2022-10-29 10:45:51 +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-deepseq.exp feat(tvix/eval): Implement builtins.deepSeq 2022-10-22 18:11:55 +00:00
eval-okay-deepseq.nix feat(tvix/eval): Implement builtins.deepSeq 2022-10-22 18:11:55 +00:00
eval-okay-deferred-unary-formals.exp fix(tvix/eval): correctly thunk deferred formals access 2023-03-13 20:30:59 +00:00
eval-okay-deferred-unary-formals.nix fix(tvix/eval): correctly thunk deferred formals access 2023-03-13 20:30:59 +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-dirof.exp feat(tvix/eval): implement builtins.dirOf 2022-10-15 12:02:05 +00:00
eval-okay-dirof.nix feat(tvix/eval): implement builtins.dirOf 2022-10-15 12:02:05 +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-eq-nested-list.exp fix(tvix/eval): nix_eq() must recurse 2022-10-31 12:36:15 +00:00
eval-okay-eq-nested-list.nix fix(tvix/eval): nix_eq() must recurse 2022-10-31 12:36:15 +00:00
eval-okay-escape-string-correct-char-boundaries.exp fix(tvix/eval): use byte, not codepoint index for slicing in escape 2023-07-11 16:11:40 +00:00
eval-okay-escape-string-correct-char-boundaries.nix fix(tvix/eval): use byte, not codepoint index for slicing in escape 2023-07-11 16:11:40 +00:00
eval-okay-escapify-integer-keys.exp fix(tvix/eval): quote keys which are not valid identifiers 2022-11-04 01:42:25 +00:00
eval-okay-escapify-integer-keys.nix fix(tvix/eval): quote keys which are not valid identifiers 2022-11-04 01:42:25 +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-floor.exp feat(tvix/eval): add builtins.{floor,ceil} 2022-10-25 08:46:37 +00:00
eval-okay-floor.nix feat(tvix/eval): add builtins.{floor,ceil} 2022-10-25 08:46:37 +00:00
eval-okay-foldlStrict-lazy-elements.exp fix(tvix/eval/builtins): force acc not list element in foldl' 2022-10-11 15:53:29 +00:00
eval-okay-foldlStrict-lazy-elements.nix fix(tvix/eval/builtins): force acc not list element in foldl' 2022-10-11 15:53:29 +00:00
eval-okay-foldlStrict-lazy-initial-accumulator.exp fix(tvix/eval): bring foldl' strictness in line with C++ Nix 2022-10-15 14:12:23 +00:00
eval-okay-foldlStrict-lazy-initial-accumulator.nix fix(tvix/eval): bring foldl' strictness in line with C++ Nix 2022-10-15 14:12:23 +00:00
eval-okay-foldlStrict.exp fix(tvix/eval): bring foldl' strictness in line with C++ Nix 2022-10-15 14:12:23 +00:00
eval-okay-foldlStrict.nix fix(tvix/eval): bring foldl' strictness in line with C++ Nix 2022-10-15 14:12:23 +00:00
eval-okay-formals-miscompilation-b-261-regression.exp fix(tvix/eval): only finalise formal arguments if defaulting 2023-06-20 10:07:44 +00:00
eval-okay-formals-miscompilation-b-261-regression.nix fix(tvix/eval): only finalise formal arguments if defaulting 2023-06-20 10:07:44 +00:00
eval-okay-fromjson-escapes.exp feat(tvix/eval): Implement builtins.fromJSON 2022-10-15 20:35:22 +00:00
eval-okay-fromjson-escapes.nix feat(tvix/eval): Implement builtins.fromJSON 2022-10-15 20:35:22 +00:00
eval-okay-fromjson.exp feat(tvix/eval): use lexical-core to format float 2023-01-25 07:49:44 +00:00
eval-okay-fromjson.nix feat(tvix/eval): use lexical-core to format float 2023-01-25 07:49:44 +00:00
eval-okay-functionargs.exp feat(nix/eval): Implement builtins.functionArgs 2022-10-17 11:29:49 +00:00
eval-okay-functionargs.nix refactor(tvix/eval): persistent, memory-sharing OrdMap for NixAttrs 2022-12-29 17:44:56 +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-identifier-formatting.exp fix(tvix/eval): ' is allowed in nonfirst position in Nix identifiers 2023-01-04 12:36:28 +00:00
eval-okay-identifier-formatting.nix fix(tvix/eval): ' is allowed in nonfirst position in Nix identifiers 2023-01-04 12:36:28 +00:00
eval-okay-import-display.exp fix(tvix/eval): make tvix display values like nix-instantiate(1) 2023-06-15 11:01:06 +00:00
eval-okay-import-display.nix fix(tvix/eval): make tvix display values like nix-instantiate(1) 2023-06-15 11:01:06 +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-internal-formals-deferred.exp test(tvix/eval): add tests for internal formals dependencies 2023-01-31 10:25:02 +00:00
eval-okay-internal-formals-deferred.nix test(tvix/eval): add tests for internal formals dependencies 2023-01-31 10:25:02 +00:00
eval-okay-internal-formals.exp test(tvix/eval): add tests for internal formals dependencies 2023-01-31 10:25:02 +00:00
eval-okay-internal-formals.nix test(tvix/eval): add tests for internal formals dependencies 2023-01-31 10:25:02 +00:00
eval-okay-intersectattrs.exp feat(tvix/eval): Implement builtins.intersectAttrs 2022-10-15 20:35:22 +00:00
eval-okay-intersectattrs.nix feat(tvix/eval): Implement builtins.intersectAttrs 2022-10-15 20:35:22 +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-nested.exp fix(tvix/eval): wrap dynamic resolution in an extra thunk 2022-10-18 09:15:13 +00:00
eval-okay-lazy-with-nested.nix fix(tvix/eval): wrap dynamic resolution in an extra thunk 2022-10-18 09:15:13 +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 fix(tvix/eval): wrap dynamic resolution in an extra thunk 2022-10-18 09:15:13 +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-siblings.exp test(tvix/eval): add a test case for nested sibling access 2022-10-23 15:50:35 +00:00
eval-okay-nested-siblings.nix test(tvix/eval): add a test case for nested sibling access 2022-10-23 15:50:35 +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-observable-eval-cache.exp fix(tvix/eval): use realpaths for import cache 2023-06-21 07:48:52 +00:00
eval-okay-observable-eval-cache.nix fix(tvix/eval): use realpaths for import cache 2023-06-21 07:48:52 +00:00
eval-okay-observe-infinite-attrs.exp test(tvix/eval): add a test for observing an infinite attribute set 2022-10-22 18:20:48 +00:00
eval-okay-observe-infinite-attrs.nix test(tvix/eval): add a test for observing an infinite attribute set 2022-10-22 18:20:48 +00:00
eval-okay-optimised-bools.exp feat(tvix/eval): implement initial compiler::optimiser module 2023-01-06 12:23:55 +00:00
eval-okay-optimised-bools.nix feat(tvix/eval): implement initial compiler::optimiser module 2023-01-06 12:23: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-parsedrvname.exp test(tvix/eval): add eval-okay-parsedrvname.{exp,nix} 2022-10-12 09:50:21 +00:00
eval-okay-parsedrvname.nix test(tvix/eval): add eval-okay-parsedrvname.{exp,nix} 2022-10-12 09:50:21 +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.disabled refactor(tvix): build Rust projects using crate2nix 2022-12-15 17:26:45 +00:00
eval-okay-readfile.exp feat(tvix/eval): Implement builtins.readFile 2022-10-10 23:38:25 +00:00
eval-okay-readfile.nix feat(tvix/eval): Implement builtins.readFile 2022-10-10 23:38:25 +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-regex-match.exp feat(tvix/eval): Initial impl of builtins.match 2022-10-15 20:35:22 +00:00
eval-okay-regex-match.nix feat(tvix/eval): Initial impl of builtins.match 2022-10-15 20:35:22 +00:00
eval-okay-remove.exp feat(tvix/eval): Implement builtins.removeAttrs 2022-10-11 00:33:39 +00:00
eval-okay-remove.nix feat(tvix/eval): Implement builtins.removeAttrs 2022-10-11 00:33:39 +00:00
eval-okay-repeated-list-to-attrs.exp test(tvix/eval): add a test for repeated keys in listToAttrs 2022-12-02 14:39:34 +00:00
eval-okay-repeated-list-to-attrs.nix test(tvix/eval): add a test for repeated keys in listToAttrs 2022-12-02 14:39:34 +00:00
eval-okay-seq.exp test(tvix/eval): test limits of builtins.seq's forcing 2022-11-24 13:25:28 +00:00
eval-okay-seq.nix test(tvix/eval): test limits of builtins.seq's forcing 2022-11-24 13:25:28 +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-stable-sort.exp test(tvix/eval): builtins.sort must preserve order of equal elements 2022-10-29 14:06:28 +00:00
eval-okay-stable-sort.nix test(tvix/eval): builtins.sort must preserve order of equal elements 2022-10-29 14:06:28 +00:00
eval-okay-thunked-functor.exp fix(tvix/eval): force functors before applying them 2023-01-23 17:27:53 +00:00
eval-okay-thunked-functor.nix fix(tvix/eval): force functors before applying them 2023-01-23 17:27:53 +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 fix(tvix/eval): Pop frames even if running op fails 2022-10-11 00:08:05 +00:00
eval-okay-tryeval.nix fix(tvix/eval): Pop frames even if running op fails 2022-10-11 00:08:05 +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-value-display.exp fix(tvix/eval): make tvix display values like nix-instantiate(1) 2023-06-15 11:01:06 +00:00
eval-okay-value-display.nix fix(tvix/eval): make tvix display values like nix-instantiate(1) 2023-06-15 11:01:06 +00:00
eval-okay-value-pointer-compare.exp test(tvix/eval): verify pointer equality in list comparisons 2022-12-02 14:06:22 +00:00
eval-okay-value-pointer-compare.nix test(tvix/eval): verify pointer equality in list comparisons 2022-12-02 14:06:22 +00:00
eval-okay-value-pointer-equality.exp test(tvix/eval): verify pointer equality checks 2022-12-02 14:06:35 +00:00
eval-okay-value-pointer-equality.nix test(tvix/eval): verify pointer equality checks 2022-12-02 14:06:35 +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
observable-eval-cache1.nix fix(tvix/eval): use realpaths for import cache 2023-06-21 07:48:52 +00:00
observable-eval-cache2.nix fix(tvix/eval): use realpaths for import cache 2023-06-21 07:48:52 +00:00
observable-eval-cache3.nix fix(tvix/eval): use realpaths for import cache 2023-06-21 07:48:52 +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.