Regenereated all spec tests with ruby sass 3.4.9.
Got a few incompatibilities and I thought I'd post it here:
# Failed test 'sass-spec t/sass-spec/spec/basic/12_pseudo_classes_and_elements/input.scss'
# got: 'a b {
# color: red; }
# a b :first-child, a b :nth-of-type(-2n+1) {
# blah: bloo; }
# a b :first-child .foo#bar:nth-child(even), a b :nth-of-type(-2n+1) .foo#bar:nth-child(even) {
# hoo: goo; }
# a b :first-child ::after, a b :nth-of-type(-2n+1) ::after {
# content: "glux"; color: green; }
# a b :first-child :not(.foo), a b :nth-of-type(-2n+1) :not(.foo) {
# hoo: boo; }
# a b :first-child :not(:not(:not(.foo[bleeble="blabble"] > .hello, .gluxbux))), a b :nth-of-type(-2n+1) :not(:not(:not(.foo[bleeble="blabble"] > .hello, .gluxbux))) {
# hoo: boo; }
# a b :first-child a, a b :nth-of-type(-2n+1) a {
# b: c; }'
# expected: 'a b {
# color: red; }
# a b :first-child, a b :nth-of-type(-2n+1) {
# blah: bloo; }
# a b :first-child .foo#bar:nth-child(even), a b :nth-of-type(-2n+1) .foo#bar:nth-child(even) {
# hoo: goo; }
# a b :first-child ::after, a b :nth-of-type(-2n+1) ::after {
# content: "glux"; color: green; }
# a b :first-child :not(.foo), a b :nth-of-type(-2n+1) :not(.foo) {
# hoo: boo; }
# a b :first-child , a b :nth-of-type(-2n+1) {
# hoo: boo; }
# a b :first-child a, a b :nth-of-type(-2n+1) a {
# b: c; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/16_hex_arithmetic/input.scss'
# got: 'div {
# p01: #abc; p02: #aabbcc; p03: #aabbcchello; p04: #abbccd; p05: #aabbdd; p06: #0101ff; p07: blue; p08: cyan; p09: #000000; p10: black; p11: black; p12: yellow; p13: #020202; p14: black; p15: 10-#222222; p16: black; p17: magenta; p18: 10 #232323; p19: 10/#222222; p20: #0b0a0b; p21: white; }'
# expected: 'div {
# p01: #abc; p02: #aabbcc; p03: #abchello; p04: #abbccd; p05: #aabbdd; p06: #0101ff; p07: blue; p08: cyan; p09: #000000; p10: black; p11: black; p12: yellow; p13: #020202; p14: black; p15: 10-#222; p16: black; p17: magenta; p18: 10 #232323; p19: 10/#222; p20: #0b0a0b; p21: white; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/18_mixin_scope/input.scss'
# got: 'div {
# a: global x; b: global y; f-a: arg; f-b: global y; f-a: local x changed by foo; f-b: global y changed by foo; f-c: new local z; a: global x; b: global y changed by foo; }'
# expected: 'div {
# a: global x; b: global y; f-a: arg; f-b: global y; f-a: local x changed by foo; f-b: global y changed by foo; f-c: new local z; a: global x; b: global y; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/19_full_mixin_craziness/input.scss'
# got: 'div {
# /* begin foo */ margin: 1 2; /* end foo */ /* begin foo */ margin: 1 3; /* end foo */ margin: 1 2 zee; margin: 1 kwd-y kwd-z; }
# div blip {
# hey: now; }
# div blip {
# hey: now; }
# div {
# /* begin hux */ color: global-y; /* begin foo */ margin: called-from-hux global-y; /* end foo */ /* end hux */ }
# div blip {
# hey: now; }
# div {
# /* begin hux */ color: calling-hux-again; /* begin foo */ margin: called-from-hux calling-hux-again; /* end foo */ /* end hux */ }
# div blip {
# hey: now; }
# div {
# blah: original-bung; }
# div {
# blah: redefined-bung; }
# div {
# /* calls to nullary mixins may omit the empty argument list */ blah: redefined-bung; }
# div {
# /* begin foo */ margin: kwdarg1 kwdarg2; /* end foo */ }
# div blip {
# hey: now; }
# hoo {
# color: boo; }
# div {
# blah: boogoo some other default; }
# div {
# value: original; }
# div {
# value: no longer original; }
# div {
# arg: changed local x; blarg: changed global y; a: global-x; b: changed global y; }'
# expected: 'div {
# /* begin foo */ margin: 1 2; /* end foo */ /* begin foo */ margin: 1 3; /* end foo */ margin: 1 2 zee; margin: 1 kwd-y kwd-z; }
# div blip {
# hey: now; }
# div blip {
# hey: now; }
# div {
# /* begin hux */ color: global-y; /* begin foo */ margin: called-from-hux global-y; /* end foo */ /* end hux */ }
# div blip {
# hey: now; }
# div {
# /* begin hux */ color: calling-hux-again; /* begin foo */ margin: called-from-hux calling-hux-again; /* end foo */ /* end hux */ }
# div blip {
# hey: now; }
# div {
# blah: original-bung; }
# div {
# blah: redefined-bung; }
# div {
# /* calls to nullary mixins may omit the empty argument list */ blah: redefined-bung; }
# div {
# /* begin foo */ margin: kwdarg1 kwdarg2; /* end foo */ }
# div blip {
# hey: now; }
# hoo {
# color: boo; }
# div {
# blah: boogoo some other default; }
# div {
# value: original; }
# div {
# value: no longer original; }
# div {
# arg: changed local x; blarg: changed global y; a: global-x; b: different-global-y; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/25_basic_string_interpolation/input.scss'
# got: 'div {
# blah: "hello 4 world px bloo\n blah"; }'
# expected: 'div {
# blah: "hello 4 world px bloon blah"; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/30_if_in_function/input.scss'
# got: 'div {
# content: foo; content: bar; content: foo; content: bar; content: bar; }'
# expected: 'div {
# content: foo; content: foo; content: foo; content: foo; content: foo; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/31_if_in_mixin/input.scss'
# got: 'div {
# content: foo; content: bar; content: foo; content: foo; }'
# expected: 'div {
# content: foo; content: foo; content: foo; content: foo; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/38_expressions_in_at_directives/input.scss'
# got: '@foo 1 2, hux {
# bar {
# whatever: whatever; }
# }'
# expected: '@foo $x $y, hux {
# bar {
# whatever: whatever; }
# }'
# Failed test 'sass-spec t/sass-spec/spec/basic/42_css_imports/input.scss'
# got: '@import url(hux\ bux.css); @import url(foo.css); @import url(bar.css); div {
# color: red; }
# span {
# color: blue; }'
# expected: '@import url(hux bux.css); @import url(foo.css); @import url(bar.css); div {
# color: red; }
# span {
# color: blue; }'
# Failed test 'sass-spec t/sass-spec/spec/basic/48_case_conversion/input.scss'
# got: 'div {
# bar: "BLAH"; bar: "BLAH"; bar: "BLAH"; bar: "1232178942"; bar: "øáéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈ݓ"; bar: BLAH; bar: BLAH; bar: BLAH; bar: ""; bar: "blah"; bar: "blah"; bar: "blah"; bar: "1232178942"; bar: "øáéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈ݓ"; bar: blah; bar: blah; bar: blah; bar: ""; }'
# expected: '@charset "UTF-8"; div {
# bar: "BLAH"; bar: "BLAH"; bar: "BLAH"; bar: "1232178942"; bar: "├©├í├®├¡├│├║├╝├▒┬┐├®├á┼ñÃàÃé╔è╔▒╩¡╩¼Ð¬Êê¦ô"; bar: BLAH; bar: BLAH; bar: BLAH; bar: ""; bar: "blah"; bar: "blah"; bar: "blah"; bar: "1232178942"; bar: "├©├í├®├¡├│├║├╝├▒┬┐├®├á┼ñÃàÃé╔è╔▒╩¡╩¼Ð¬Êê¦ô"; bar: blah; bar: blah; bar: blah; bar: ""; }'
# Failed test 'sass-spec t/sass-spec/spec/extend-tests/180_test_basic_extend_loop/input.scss'
# got: '.bar, .foo {
# a: b; }
# .foo, .bar {
# c: d; }'
# expected: '.foo, .bar {
# a: b; }
# .bar, .foo {
# c: d; }'
# Failed test 'sass-spec t/sass-spec/spec/extend-tests/181_test_three_level_extend_loop/input.scss'
# got: '.baz, .bar, .foo {
# a: b; }
# .foo, .baz, .bar {
# c: d; }
# .bar, .foo, .baz {
# e: f; }'
# expected: '.foo, .baz, .bar {
# a: b; }
# .bar, .foo, .baz {
# c: d; }
# .baz, .bar, .foo {
# e: f; }'
# Failed test 'sass-spec t/sass-spec/spec/libsass/list-evaluation/input.scss'
# got: 'div {
# content: red 2/3 blue; content: 2/3; content: number; content: color; /**** 4 ****/ content: 0.5 3/40.83333 7/8; content: 0.5 3/4, 0.83333 7/8; /**** ****/ foo: 1; bar: 2; foo: 2; bar: 3; foo: 0.75; bar: 1.75; /*** ***/ stuff: 1, 2 3/4 5, 6; stuff: 0.25; }'
# expected: 'div {
# content: red 2/3 blue; content: 0.66667; content: number; content: color; /**** 4 ****/ content: 0.5 3/40.83333 7/8; content: 0.5 3/4, 0.83333 7/8; /**** ****/ foo: 1; bar: 2; foo: 2; bar: 3; foo: 0.75; bar: 1.75; /*** ***/ stuff: 1, 2 3/4 5, 6; stuff: 0.25; }'
WARNING on line 7, column 2 of t/sass-spec/spec/libsass-closed-issues/issue_308/input.scss:
You probably don't mean to use the color value `orange' in interpolation here.
It may end up represented as #ffa500, which will likely produce invalid CSS.
Always quote color names when using them as strings (for example, "orange").
If you really want to use the color value here, use `"" + $var'.
Error: fetched
on line 2 of t/sass-spec/spec/libsass-closed-issues/issue_799/input.scss
Use --trace for backtrace.
# Failed test 'sass-spec t/sass-spec/spec/libsass-closed-issues/issue_799/input.scss'
# got: '.test {
# content: "fetched"; }'
# expected: ''
# Failed test 'sass-spec t/sass-spec/spec/scss/default-args/input.scss'
# got: 'div {
# value: 1, 2; value: 2, 3; value: 1, 3; }
# div {
# value: ho; }'
# expected: 'div {
# value: 1, 2; value: 2, 3; value: 1, 3; }
# div {
# value: hey; }'
# Failed test 'sass-spec t/sass-spec/spec/scss/each-in-function/input.scss'
# got: 'div {
# a: 0; b: global each 50% 50% type1 number type2 number each cover circle type1 string type2 string each red blue type1 color type2 color; c: a, b, color, d; }'
# expected: 'div {
# a: 0; b: global; c: a, b, color, d; }'
# Failed test 'sass-spec t/sass-spec/spec/scss/env/input.scss'
# got: 'div {
# /* 0 */ font: 0; /* 1 */ font: 1; /* 2 */ font: 2; }
# div span {
# /* 2 */ font: 2; }
# div p {
# /* 2 */ font: 2; }
# div {
# @foo {
# font: 2; }
# @bar {
# font: 3; }
# }
# div {
# content: "foo"; font: fudge; width: "block for foo!"; }'
# expected: 'div {
# /* 0 */ font: 0; /* 1 */ font: 1; /* 2 */ font: 2; }
# div span {
# /* 2 */ font: 2; }
# div p {
# /* 2 */ font: 2; }
# @foo {
# div {
# font: 2; }
# }
# @bar {
# div {
# font: 3; }
# }
# div {
# content: "foo"; font: fudge; width: "block for foo!"; }'
# Failed test 'sass-spec t/sass-spec/spec/scss/if-in-function/input.scss'
# got: 'div {
# content: foo; content: bar; content: foo; content: bar; content: bar; }'
# expected: 'div {
# content: foo; content: foo; content: foo; content: foo; content: foo; }'
# Failed test 'sass-spec t/sass-spec/spec/scss/if-in-mixin/input.scss'
# got: 'div {
# content: foo; content: bar; content: foo; content: foo; }'
# expected: 'div {
# content: foo; content: foo; content: foo; content: foo; }'
# Failed test 'sass-spec t/sass-spec/spec/scss/selectors/input.scss'
# got: 'div span, div p, div span {
# color: red; }
# div a.foo.bar.foo {
# color: green; }
# div:nth(-3) {
# color: blue; }
# @-webkit-keyframes {
# from {
# left: 0px; }
# from 10% {
# whatever: hoo; }
# to {
# left: 200px; }
# }
# div {
# @whatever {
# blah: blah; stuff {
# blah: bloh; }
# }
# }
# a, b {
# color: red; }
# a c, a d, b c, b d {
# height: 10px; }
# a c e, a c f, a d e, a d f, b c e, b c f, b d e, b d f {
# width: 12px; }'
# expected: 'div span, div p, div span {
# color: red; }
# div a.foo.bar.foo {
# color: green; }
# div:nth(-3) {
# color: blue; }
# @-webkit-keyframes {
# from {
# left: 0px; 10% {
# whatever: hoo; }
# }
# to {
# left: 200px; }
# }
# @whatever {
# div {
# blah: blah; }
# div stuff {
# blah: bloh; }
# }
# a, b {
# color: red; }
# a c, a d, b c, b d {
# height: 10px; }
# a c e, a c f, a d e, a d f, b c e, b c f, b d e, b d f {
# width: 12px; }'
# Failed test 'sass-spec t/sass-spec/spec/scss/unquote/input.scss'
# got: 'div {
# a: foo; b: I'm a "fashion" "expert".; c: \"wha; d: column1\tcolumn2; e: 24; f: 37%; g: null; j: 1; k: 2; l: a b; m: a 1, b 2; n: 1; }'
# expected: 'div {
# a: foo; b: I'm a "fashion" "expert".; c: \"wha; d: column1tcolumn2; e: 24; f: 37%; g: null; j: 1; k: 2; l: a b; m: a 1, b 2; n: 1; }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/047_test_unknown_directive_bubbling/input.scss'
# got: '.foo {
# @fblthp {
# .bar {
# a: b; }
# }
# }'
# expected: '@fblthp {
# .foo .bar {
# a: b; }
# }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/135_test_simple_at_root/input.scss'
# got: '.foo {
# @at-root {
# .bar {
# a: b; }
# }
# }'
# expected: '.bar {
# a: b; }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/136_test_at_root_with_selector/input.scss'
# got: '.foo {
# @at-root .bar {
# a: b; }
# }'
# expected: '.bar {
# a: b; }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/137_test_at_root_in_mixin/input.scss'
# got: '.foo {
# @at-root .bar {
# a: b; }
# }'
# expected: '.bar {
# a: b; }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/138_test_at_root_in_media/input.scss'
# got: '@media screen {
# .foo {
# @at-root .bar {
# a: b; }
# }
# }'
# expected: '@media screen {
# .bar {
# a: b; }
# }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/139_test_at_root_in_bubbled_media/input.scss'
# got: '@media screen {
# .foo {
# @at-root .bar {
# a: b; }
# }
# }'
# expected: '@media screen {
# .bar {
# a: b; }
# }'
# Failed test 'sass-spec t/sass-spec/spec/scss-tests/140_test_at_root_in_unknown_directive/input.scss'
# got: '@fblthp {
# .foo {
# @at-root .bar {
# a: b; }
# }
# }'
# expected: '@fblthp {
# .bar {
# a: b; }
# }'
# Looks like you failed 28 tests of 601.
Failed 28/601 subtests