Test output for uri-common

Testing time: 8.0s

CHICKEN_INSTALL_PREFIX=/root/src/salmonella/salmonella-4.5.0/repo CHICKEN_INCLUDE_PATH=/root/src/salmonella/salmonella-4.5.0/repo/share/chicken CHICKEN_REPOSITORY=/root/src/salmonella/salmonella-4.5.0/repo/lib/chicken/5 /usr/local/chicken-4.5.0/bin/csi -script run.scm

-- testing uri-common --------------------------------------------------------

    -- testing internal representations --------------------------------------

        -- testing scheme ----------------------------------------------------
        "http:" decoded as http ...................................... [ PASS]
        http encoded to "http:" ...................................... [ PASS]
        "" decoded as #f ............................................. [ PASS]
        #f encoded to "" ............................................. [ PASS]
        4 tests completed in 0.001 seconds.
        4 out of 4 (100%) tests passed.
        -- done testing scheme -----------------------------------------------


        -- testing port ------------------------------------------------------
        "http://a" decoded as 80 ..................................... [ PASS]
        80 encoded to "http://a" ..................................... [ PASS]
        "http://a:8080" decoded as 8080 .............................. [ PASS]
        8080 encoded to "http://a:8080" .............................. [ PASS]
        "https://a" decoded as 443 ................................... [ PASS]
        443 encoded to "https://a" ................................... [ PASS]
        "https://a:1" decoded as 1 ................................... [ PASS]
        1 encoded to "https://a:1" ................................... [ PASS]
        "//a" decoded as #f .......................................... [ PASS]
        #f encoded to "//a" .......................................... [ PASS]
        10 tests completed in 0.001 seconds.
        10 out of 10 (100%) tests passed.
        -- done testing port -------------------------------------------------


        -- testing username --------------------------------------------------
        "//foo" decoded as #f ........................................ [ PASS]
        #f encoded to "//foo" ........................................ [ PASS]
        "//@" decoded as "" .......................................... [ PASS]
        "" encoded to "//@" .......................................... [ PASS]
        "//foo@" decoded as "foo" .................................... [ PASS]
        "foo" encoded to "//foo@" .................................... [ PASS]
        "//foo:bar@" decoded as "foo" ................................ [ PASS]
        "foo" encoded to "//foo:bar@" ................................ [ PASS]
        "//foo:bar:qux@" decoded as "foo" ............................ [ PASS]
        "foo" encoded to "//foo:bar:qux@" ............................ [ PASS]
        "//foo%20bar@" decoded as "foo bar" .......................... [ PASS]
        "foo bar" encoded to "//foo%20bar@" .......................... [ PASS]
        "//foo%3Abar:qux@" decoded as "foo:bar" ...................... [ PASS]
        "foo:bar" encoded to "//foo%3Abar:qux@" ...................... [ PASS]
        "//foo%2Ebar@" decoded as "foo.bar" .......................... [ PASS]
        "foo.bar" encoded to "//foo.bar@" ............................ [ PASS]
        16 tests completed in 0.002 seconds.
        16 out of 16 (100%) tests passed.
        -- done testing username ---------------------------------------------


        -- testing password  -------------------------------------------------
        "//foo" decoded as #f ........................................ [ PASS]
        #f encoded to "//foo" ........................................ [ PASS]
        "//@" decoded as #f .......................................... [ PASS]
        #f encoded to "//@" .......................................... [ PASS]
        "//foo@" decoded as #f ....................................... [ PASS]
        #f encoded to "//foo@" ....................................... [ PASS]
        "//foo:bar@" decoded as "bar" ................................ [ PASS]
        "bar" encoded to "//foo:bar@" ................................ [ PASS]
        "//foo:bar:qux@" decoded as "bar:qux" ........................ [ PASS]
        "bar:qux" encoded to "//foo:bar:qux@" ........................ [ PASS]
        "//foo:bar%20qux@" decoded as "bar qux" ...................... [ PASS]
        "bar qux" encoded to "//foo:bar%20qux@" ...................... [ PASS]
        "//foo:bar%2Equx@" decoded as "bar.qux" ...................... [ PASS]
        "bar.qux" encoded to "//foo:bar.qux@" ........................ [ PASS]
        14 tests completed in 0.006 seconds.
        14 out of 14 (100%) tests passed.
        -- done testing password  --------------------------------------------


        -- testing path ------------------------------------------------------
        "http://foo" decoded as (/ "") ............................... [ PASS]
        (/ "") encoded to "http://foo" ............................... [ PASS]
        "http://foo/" decoded as (/ "") .............................. [ PASS]
        (/ "") encoded to "http://foo/" .............................. [ PASS]
        "//foo" decoded as () ........................................ [ PASS]
        () encoded to "//foo" ........................................ [ PASS]
        "//foo/" decoded as (/ "") ................................... [ PASS]
        (/ "") encoded to "//foo/" ................................... [ PASS]
        "foo%20bar" decoded as ("foo bar") ........................... [ PASS]
        ("foo bar") encoded to "foo%20bar" ........................... [ PASS]
        "foo%2Fbar" decoded as ("foo/bar") ........................... [ PASS]
        ("foo/bar") encoded to "foo%2Fbar" ........................... [ PASS]
        "foo%2ebar" decoded as ("foo.bar") ........................... [ PASS]
        ("foo.bar") encoded to "foo.bar" ............................. [ PASS]
        "foo/bar%2Fqux" decoded as ("foo" "bar/qux") ................. [ PASS]
        ("foo" "bar/qux") encoded to "foo/bar%2Fqux" ................. [ PASS]
        "foo/" decoded as ("foo" "") ................................. [ PASS]
        ("foo" "") encoded to "foo/" ................................. [ PASS]
        "foo/bar:qux" decoded as ("foo" "bar:qux") ................... [ PASS]
        ("foo" "bar:qux") encoded to "foo/bar:qux" ................... [ PASS]
        "/foo%2Fbar" decoded as (/ "foo/bar") ........................ [ PASS]
        (/ "foo/bar") encoded to "/foo%2Fbar" ........................ [ PASS]
        "/foo/" decoded as (/ "foo" "") .............................. [ PASS]
        (/ "foo" "") encoded to "/foo/" .............................. [ PASS]
        "/foo:bar" decoded as (/ "foo:bar") .......................... [ PASS]
        (/ "foo:bar") encoded to "/foo:bar" .......................... [ PASS]
        26 tests completed in 0.01 seconds.
        26 out of 26 (100%) tests passed.
        -- done testing path -------------------------------------------------


        -- testing query  ----------------------------------------------------
        "//" decoded as () ........................................... [ PASS]
        () encoded to "//" ........................................... [ PASS]
        "?" decoded as ((|| . #t)) ................................... [ PASS]
        ((|| . #t)) encoded to "?" ................................... [ PASS]
        "?foo" decoded as ((foo . #t)) ............................... [ PASS]
        ((foo . #t)) encoded to "?foo" ............................... [ PASS]
        "?foo?bar" decoded as ((foo?bar . #t)) ....................... [ PASS]
        ((foo?bar . #t)) encoded to "?foo?bar" ....................... [ PASS]
        "?foo/bar" decoded as ((foo/bar . #t)) ....................... [ PASS]
        ((foo/bar . #t)) encoded to "?foo/bar" ....................... [ PASS]
        "?foo%3Fbar" decoded as ((foo?bar . #t)) ..................... [ PASS]
        ((foo?bar . #t)) encoded to "?foo%3Fbar" ..................... [ PASS]
        "?foo%2Ebar" decoded as ((foo.bar . #t)) ..................... [ PASS]
        ((foo.bar . #t)) encoded to "?foo.bar" ....................... [ PASS]
        14 tests completed in 0.003 seconds.
        14 out of 14 (100%) tests passed.
        -- done testing query  -----------------------------------------------


        -- testing fragment --------------------------------------------------
        "?foo" decoded as #f ......................................... [ PASS]
        #f encoded to "?foo" ......................................... [ PASS]
        "#bar" decoded as "bar" ...................................... [ PASS]
        "bar" encoded to "#bar" ...................................... [ PASS]
        "?foo#bar" decoded as "bar" .................................. [ PASS]
        "bar" encoded to "?foo#bar" .................................. [ PASS]
        "#foo?bar" decoded as "foo?bar" .............................. [ PASS]
        "foo?bar" encoded to "#foo?bar" .............................. [ PASS]
        "#foo%3Fbar" decoded as "foo?bar" ............................ [ PASS]
        "foo?bar" encoded to "#foo%3Fbar" ............................ [ PASS]
        "#foo/bar" decoded as "foo/bar" .............................. [ PASS]
        "foo/bar" encoded to "#foo/bar" .............................. [ PASS]
        "#foo%2Ebar" decoded as "foo.bar" ............................ [ PASS]
        "foo.bar" encoded to "#foo.bar" .............................. [ PASS]
        14 tests completed in 0.003 seconds.
        14 out of 14 (100%) tests passed.
        -- done testing fragment ---------------------------------------------

    7 subgroups completed in 0.027 seconds.
    7 out of 7 (100%) subgroups passed.
    -- done testing internal representations ---------------------------------


    -- testing updating ------------------------------------------------------

        -- testing query -----------------------------------------------------
        ((foo . "bar?qux")) -> "?foo=bar%3Fqux" ...................... [ PASS]
        ((foo?bar . "qux")) -> "?foo%3Fbar=qux" ...................... [ PASS]
        ((foo . "bar&qux")) -> "?foo=bar%26qux" ...................... [ PASS]
        ((foo&bar . "qux")) -> "?foo%26bar=qux" ...................... [ PASS]
        ((foo . "bar=qux")) -> "?foo=bar%3Dqux" ...................... [ PASS]
        ((foo=bar . "qux")) -> "?foo%3Dbar=qux" ...................... [ PASS]
        ((foo . "bar") (foo . "qux")) -> "?foo=bar;foo=qux" .......... [ PASS]
        7 tests completed in 0.005 seconds.
        7 out of 7 (100%) tests passed.
        -- done testing query ------------------------------------------------


        -- testing port ------------------------------------------------------
        80 -> "http://a" ............................................. [ PASS]
        8080 -> "http://a:8080" ...................................... [ PASS]
        2 tests completed in 0.001 seconds.
        2 out of 2 (100%) tests passed.
        -- done testing port -------------------------------------------------


        -- testing scheme ----------------------------------------------------
        http -> "http://a" ........................................... [ PASS]
        http -> "http://a" ........................................... [ PASS]
        http -> "http://a" ........................................... [ PASS]
        https -> "https://a" ......................................... [ PASS]
        4 tests completed in 0.001 seconds.
        4 out of 4 (100%) tests passed.
        -- done testing scheme -----------------------------------------------

    3 subgroups completed in 0.007 seconds.
    3 out of 3 (100%) subgroups passed.
    -- done testing updating -------------------------------------------------


    -- testing form-urlencoding-hoehrmann-draft-cases ------------------------
    encode ((| a b c | . " 1  3 ")) -> "+a+b+c+=+1++3+" .............. [ PASS]
    decode "+a+b+c+=+1++3+" -> ((| a b c | . " 1  3 ")) .............. [ PASS]
    decode "%20a%20b%20c%20=%201%20%203%20" -> ((| a b c | . " 1  3 "))  [ PASS]
    decode " a b c = 1  3 " -> ((| a b c | . " 1  3 ")) .............. [ PASS]
    encode ((Text . "Line1\nLine2")) -> "Text=Line1%0ALine2" ......... [ PASS]
    decode "Text=Line1%0ALine2" -> ((Text . "Line1\nLine2")) ......... [ PASS]
    decode "Text=Line1\nLine2" -> ((Text . "Line1\nLine2")) .......... [ PASS]
    encode ((Cipher . "c=(m^e)%n")) -> "Cipher=c%3D%28m%5Ee%29%25n" .. [ PASS]
    decode "Cipher=c%3D%28m%5Ee%29%25n" -> ((Cipher . "c=(m^e)%n")) .. [ PASS]
    decode "Cipher=c=(m%5Ee)%25n" -> ((Cipher . "c=(m^e)%n")) ........ [ PASS]
    decode "Cipher=c=(m^e)%n" -> ((Cipher . "c=(m^e)%n")) ............ [ PASS]
    decode "%43%69%70%68%65%72=%63%3d%28%6D%5E%65%29%25%6e" -> ((Cipher . "c=(m^e)%n"))  [ PASS]
    encode ((|| . #t) (|| . #t)) -> ";" .............................. [ PASS]
    decode ";" -> ((|| . #t) (|| . #t)) .............................. [ PASS]
    encode ((|| . #t) (|| . "")) -> ";=" ............................. [ PASS]
    decode ";=" -> ((|| . #t) (|| . "")) ............................. [ PASS]
    encode ((|| . "") (|| . #t)) -> "=;" ............................. [ PASS]
    decode "=;" -> ((|| . "") (|| . #t)) ............................. [ PASS]
    encode ((|| . "") (|| . "")) -> "=;=" ............................ [ PASS]
    decode "=;=" -> ((|| . "") (|| . "")) ............................ [ PASS]
    encode ((|| . "")) -> "=" ........................................ [ PASS]
    decode "=" -> ((|| . "")) ........................................ [ PASS]
    encode ((|| . #t)) -> "" ......................................... [ PASS]
    decode "" -> ((|| . #t)) ......................................... [ PASS]
    encode ((a&b . "1") (c . "2;3") (e . "4")) -> "a%26b=1;c=2%3B3;e=4"  [ PASS]
    decode "a%26b=1;c=2%3B3;e=4" -> ((a&b . "1") (c . "2;3") (e . "4"))  [ PASS]
    decode "a%26b=1&c=2%3B3&e=4" -> ((a&b . "1") (c . "2;3") (e . "4"))  [ PASS]
    decode "a%26b=1;c=2%3B3&e=4" -> ((a&b . "1") (c . "2;3") (e . "4"))  [ PASS]
    decode "a%26b=1&c=2%3B3;e=4" -> ((a&b . "1") (c . "2;3") (e . "4"))  [ PASS]
    encode ((img . #t) (avail . #t) (name . #t) (price . #t)) -> "img;avail;name;price"  [ PASS]
    decode "img;avail;name;price" -> ((img . #t) (avail . #t) (name . #t) (price . #t))  [ PASS]
    encode ((foo+bar . "mooh+qux") (|foo bar| . "mooh qux")) -> "foo%2Bbar=mooh%2Bqux;foo+bar=mooh+qux"  [ PASS]
    decode "foo%2Bbar=mooh%2Bqux;foo+bar=mooh+qux" -> ((foo+bar . "mooh+qux") (|foo bar| . "mooh qux"))  [ PASS]
    encode ((no+value . #t) (|no value| . #t)) -> "no%2Bvalue;no+value"  [ PASS]
    decode "no%2Bvalue;no+value" -> ((no+value . #t) (|no value| . #t))  [ PASS]
    35 tests completed in 0.014 seconds.
    35 out of 35 (100%) tests passed.
    -- done testing form-urlencoding-hoehrmann-draft-cases -------------------


    -- testing miscellaneous -------------------------------------------------
    scheme doesn't reset port if port given .......................... [ PASS]
    separator string order is maintained in form-urlencode ........... [ PASS]
    False values can't be distinguished from missing values .......... [ PASS]
    3 tests completed in 0.001 seconds.
    3 out of 3 (100%) tests passed.
    -- done testing miscellaneous --------------------------------------------

4 subgroups completed in 0.072 seconds.
4 out of 4 (100%) subgroups passed.
-- done testing uri-common ---------------------------------------------------