about summary refs log tree commit diff
path: root/tvix/eval/src/tests/nix_tests/notyetpassing
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-01-24T14·54+0100
committerclbot <clbot@tvl.fyi>2023-01-25T07·49+0000
commite0b05c0fa6562bc7d3c87a66c6557ad74fdbbd8f (patch)
tree9777bf85c45f0527428c38974b102a0acf0455f2 /tvix/eval/src/tests/nix_tests/notyetpassing
parent1facd889bba724cf20ea14422ee1e57440b3e761 (diff)
feat(tvix/eval): implement builtins.fromTOML r/5754
This allows parsing TOML from Tvix. We can enable the eval-okay-fromTOML
testcase from nix_tests. It uses the `toml` crate, and the serde
integration it brings with it.

Change-Id: Ic6f95aacf2aeb890116629b409752deac49dd655
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7920
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval/src/tests/nix_tests/notyetpassing')
-rw-r--r--tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.exp1
-rw-r--r--tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.nix208
2 files changed, 0 insertions, 209 deletions
diff --git a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.exp b/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.exp
deleted file mode 100644
index d0dd3af2c814..000000000000
--- a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.exp
+++ /dev/null
@@ -1 +0,0 @@
-[ { clients = { data = [ [ "gamma" "delta" ] [ 1 2 ] ]; hosts = [ "alpha" "omega" ]; }; database = { connection_max = 5000; enabled = true; ports = [ 8001 8001 8002 ]; server = "192.168.1.1"; }; owner = { name = "Tom Preston-Werner"; }; servers = { alpha = { dc = "eqdc10"; ip = "10.0.0.1"; }; beta = { dc = "eqdc10"; ip = "10.0.0.2"; }; }; title = "TOML Example"; } { "1234" = "value"; "127.0.0.1" = "value"; a = { b = { c = { }; }; }; arr1 = [ 1 2 3 ]; arr2 = [ "red" "yellow" "green" ]; arr3 = [ [ 1 2 ] [ 3 4 5 ] ]; arr4 = [ "all" "strings" "are the same" "type" ]; arr5 = [ [ 1 2 ] [ "a" "b" "c" ] ]; arr7 = [ 1 2 3 ]; arr8 = [ 1 2 ]; bare-key = "value"; bare_key = "value"; bin1 = 214; bool1 = true; bool2 = false; "character encoding" = "value"; d = { e = { f = { }; }; }; dog = { "tater.man" = { type = { name = "pug"; }; }; }; flt1 = 1; flt2 = 3.1415; flt3 = -0.01; flt4 = 5e+22; flt5 = 1e+06; flt6 = -0.02; flt7 = 6.626e-34; flt8 = 9.22462e+06; fruit = [ { name = "apple"; physical = { color = "red"; shape = "round"; }; variety = [ { name = "red delicious"; } { name = "granny smith"; } ]; } { name = "banana"; variety = [ { name = "plantain"; } ]; } ]; g = { h = { i = { }; }; }; hex1 = 3735928559; hex2 = 3735928559; hex3 = 3735928559; int1 = 99; int2 = 42; int3 = 0; int4 = -17; int5 = 1000; int6 = 5349221; int7 = 12345; j = { "ʞ" = { l = { }; }; }; key = "value"; key2 = "value"; name = "Orange"; oct1 = 342391; oct2 = 493; physical = { color = "orange"; shape = "round"; }; products = [ { name = "Hammer"; sku = 738594937; } { } { color = "gray"; name = "Nail"; sku = 284758393; } ]; "quoted \"value\"" = "value"; site = { "google.com" = true; }; str = "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF."; table-1 = { key1 = "some string"; key2 = 123; }; table-2 = { key1 = "another string"; key2 = 456; }; x = { y = { z = { w = { animal = { type = { name = "pug"; }; }; name = { first = "Tom"; last = "Preston-Werner"; }; point = { x = 1; y = 2; }; }; }; }; }; "ʎǝʞ" = "value"; } { metadata = { "checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4"; "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"; "checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6"; "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"; }; package = [ { dependencies = [ "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" ]; name = "aho-corasick"; source = "registry+https://github.com/rust-lang/crates.io-index"; version = "0.6.4"; } { name = "ansi_term"; source = "registry+https://github.com/rust-lang/crates.io-index"; version = "0.9.0"; } { dependencies = [ "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" ]; name = "atty"; source = "registry+https://github.com/rust-lang/crates.io-index"; version = "0.2.10"; } ]; } { a = [ [ { b = true; } ] ]; c = [ [ { d = true; } ] ]; e = [ [ 123 ] ]; } ]
diff --git a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.nix b/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.nix
deleted file mode 100644
index 963932689942..000000000000
--- a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-fromTOML.nix
+++ /dev/null
@@ -1,208 +0,0 @@
-[
-
-  (builtins.fromTOML ''
-    # This is a TOML document.
-
-    title = "TOML Example"
-
-    [owner]
-    name = "Tom Preston-Werner"
-    #dob = 1979-05-27T07:32:00-08:00 # First class dates
-
-    [database]
-    server = "192.168.1.1"
-    ports = [ 8001, 8001, 8002 ]
-    connection_max = 5000
-    enabled = true
-
-    [servers]
-
-      # Indentation (tabs and/or spaces) is allowed but not required
-      [servers.alpha]
-      ip = "10.0.0.1"
-      dc = "eqdc10"
-
-      [servers.beta]
-      ip = "10.0.0.2"
-      dc = "eqdc10"
-
-    [clients]
-    data = [ ["gamma", "delta"], [1, 2] ]
-
-    # Line breaks are OK when inside arrays
-    hosts = [
-      "alpha",
-      "omega"
-    ]
-  '')
-
-  (builtins.fromTOML ''
-    key = "value"
-    bare_key = "value"
-    bare-key = "value"
-    1234 = "value"
-
-    "127.0.0.1" = "value"
-    "character encoding" = "value"
-    "ʎǝʞ" = "value"
-    'key2' = "value"
-    'quoted "value"' = "value"
-
-    name = "Orange"
-
-    physical.color = "orange"
-    physical.shape = "round"
-    site."google.com" = true
-
-    # This is legal according to the spec, but cpptoml doesn't handle it.
-    #a.b.c = 1
-    #a.d = 2
-
-    str = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."
-
-    int1 = +99
-    int2 = 42
-    int3 = 0
-    int4 = -17
-    int5 = 1_000
-    int6 = 5_349_221
-    int7 = 1_2_3_4_5
-
-    hex1 = 0xDEADBEEF
-    hex2 = 0xdeadbeef
-    hex3 = 0xdead_beef
-
-    oct1 = 0o01234567
-    oct2 = 0o755
-
-    bin1 = 0b11010110
-
-    flt1 = +1.0
-    flt2 = 3.1415
-    flt3 = -0.01
-    flt4 = 5e+22
-    flt5 = 1e6
-    flt6 = -2E-2
-    flt7 = 6.626e-34
-    flt8 = 9_224_617.445_991_228_313
-
-    bool1 = true
-    bool2 = false
-
-    # FIXME: not supported because Nix doesn't have a date/time type.
-    #odt1 = 1979-05-27T07:32:00Z
-    #odt2 = 1979-05-27T00:32:00-07:00
-    #odt3 = 1979-05-27T00:32:00.999999-07:00
-    #odt4 = 1979-05-27 07:32:00Z
-    #ldt1 = 1979-05-27T07:32:00
-    #ldt2 = 1979-05-27T00:32:00.999999
-    #ld1 = 1979-05-27
-    #lt1 = 07:32:00
-    #lt2 = 00:32:00.999999
-
-    arr1 = [ 1, 2, 3 ]
-    arr2 = [ "red", "yellow", "green" ]
-    arr3 = [ [ 1, 2 ], [3, 4, 5] ]
-    arr4 = [ "all", 'strings', """are the same""", ''''type'''']
-    arr5 = [ [ 1, 2 ], ["a", "b", "c"] ]
-
-    arr7 = [
-      1, 2, 3
-    ]
-
-    arr8 = [
-      1,
-      2, # this is ok
-    ]
-
-    [table-1]
-    key1 = "some string"
-    key2 = 123
-
-
-    [table-2]
-    key1 = "another string"
-    key2 = 456
-
-    [dog."tater.man"]
-    type.name = "pug"
-
-    [a.b.c]
-    [ d.e.f ]
-    [ g .  h  . i ]
-    [ j . "ʞ" . 'l' ]
-    [x.y.z.w]
-
-    name = { first = "Tom", last = "Preston-Werner" }
-    point = { x = 1, y = 2 }
-    animal = { type.name = "pug" }
-
-    [[products]]
-    name = "Hammer"
-    sku = 738594937
-
-    [[products]]
-
-    [[products]]
-    name = "Nail"
-    sku = 284758393
-    color = "gray"
-
-    [[fruit]]
-      name = "apple"
-
-      [fruit.physical]
-        color = "red"
-        shape = "round"
-
-      [[fruit.variety]]
-        name = "red delicious"
-
-      [[fruit.variety]]
-        name = "granny smith"
-
-    [[fruit]]
-      name = "banana"
-
-      [[fruit.variety]]
-        name = "plantain"
-  '')
-
-  (builtins.fromTOML ''
-    [[package]]
-    name = "aho-corasick"
-    version = "0.6.4"
-    source = "registry+https://github.com/rust-lang/crates.io-index"
-    dependencies = [
-     "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-    ]
-
-    [[package]]
-    name = "ansi_term"
-    version = "0.9.0"
-    source = "registry+https://github.com/rust-lang/crates.io-index"
-
-    [[package]]
-    name = "atty"
-    version = "0.2.10"
-    source = "registry+https://github.com/rust-lang/crates.io-index"
-    dependencies = [
-     "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
-     "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-     "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-    ]
-
-    [metadata]
-    "checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4"
-    "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-    "checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6"
-    "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
-  '')
-
-  (builtins.fromTOML ''
-    a = [[{ b = true }]]
-    c = [ [ { d = true } ] ]
-    e = [[123]]
-  '')
-
-]