[gtk/wip/otte/css: 59/59] testsuite: Check errors not just for line, but for full range



commit b20bbee2bbbe7df34c20d0db0a62d36ffdc1767e
Author: Benjamin Otte <otte redhat com>
Date:   Thu Apr 11 04:33:08 2019 +0200

    testsuite: Check errors not just for line, but for full range
    
    Instead of just checking that the line of the error message is correct,
    assert that start and end position are on the correct character offset.
    
    Also fix all the tests to conform to this.

 testsuite/css/parser/animation-crash-3.12.errors   |   2 +-
 testsuite/css/parser/at-invalid-01.errors          |   2 +-
 testsuite/css/parser/at-invalid-02.errors          |   2 +-
 testsuite/css/parser/at-invalid-03.errors          |   4 +-
 testsuite/css/parser/at-invalid-04.errors          |   4 +-
 testsuite/css/parser/at-invalid-05.errors          |   4 +-
 testsuite/css/parser/at-invalid-06.errors          |   2 +-
 testsuite/css/parser/at-invalid-07.errors          |   2 +-
 testsuite/css/parser/at-invalid-08.errors          |   2 +-
 testsuite/css/parser/at-invalid-09.errors          |   2 +-
 testsuite/css/parser/at-invalid-10.errors          |   2 +-
 testsuite/css/parser/at-invalid-11.errors          |   2 +-
 testsuite/css/parser/at-invalid-12.errors          |   2 +-
 testsuite/css/parser/at-invalid-13.errors          |   2 +-
 testsuite/css/parser/at-invalid-14.errors          |   2 +-
 testsuite/css/parser/at-invalid-15.errors          |   2 +-
 testsuite/css/parser/at-invalid-16.errors          |   2 +-
 testsuite/css/parser/at-invalid-17.errors          |   2 +-
 testsuite/css/parser/at-invalid-18.errors          |   2 +-
 testsuite/css/parser/at-invalid-19.errors          |   2 +-
 testsuite/css/parser/at-invalid-20.errors          |   2 +-
 testsuite/css/parser/at-invalid-21.errors          |   4 +-
 testsuite/css/parser/at-invalid-22.css             |   1 +
 testsuite/css/parser/at-invalid-22.errors          |   1 +
 testsuite/css/parser/at-invalid-22.ref.css         |   0
 testsuite/css/parser/at-valid-11.css               |   2 +-
 testsuite/css/parser/at-valid-16.css               |   2 +-
 .../css/parser/background-position-errors.errors   |   2 +-
 testsuite/css/parser/background-position.errors    |  26 +-
 testsuite/css/parser/background-position.ref.css   |   2 +
 testsuite/css/parser/border-infloop-3.12.errors    |   2 +-
 .../css/parser/border-radius-shorthand.errors      |  26 +-
 testsuite/css/parser/border.errors                 |  16 +-
 testsuite/css/parser/calc-errors.css               |  10 +-
 testsuite/css/parser/calc-errors.errors            |  38 +--
 testsuite/css/parser/calc-errors.ref.css           |   6 +-
 testsuite/css/parser/calc.css                      |   4 +
 testsuite/css/parser/calc.ref.css                  |   4 +
 testsuite/css/parser/close-at-end-of-file.errors   |   3 +-
 testsuite/css/parser/colors-errors.css             |   5 +
 testsuite/css/parser/colors-errors.errors          |  15 +-
 testsuite/css/parser/colors-errors.ref.css         |   3 +
 testsuite/css/parser/colors-red.css                |   4 -
 testsuite/css/parser/colors-red.ref.css            |   4 -
 .../css/parser/css-21-malformed-declarations.css   |  14 +-
 .../parser/css-21-malformed-declarations.errors    |  19 +-
 .../parser/css-21-malformed-declarations.ref.css   |  14 +-
 .../css/parser/css-21-malformed-statements.errors  |   8 +-
 .../css/parser/declarations-invalid-01.errors      |   3 +-
 .../css/parser/declarations-invalid-02.errors      |   3 +-
 .../css/parser/declarations-invalid-03.errors      |   3 +-
 .../css/parser/declarations-invalid-04.errors      |   3 +-
 .../css/parser/declarations-invalid-05.errors      |   3 +-
 .../css/parser/declarations-invalid-06.errors      |   3 +-
 .../css/parser/declarations-invalid-07.errors      |   3 +-
 .../css/parser/declarations-invalid-08.errors      |   7 +-
 testsuite/css/parser/declarations-valid-02.errors  |   1 +
 testsuite/css/parser/declarations-valid-04.css     |   2 +-
 testsuite/css/parser/declarations-valid-05.css     |   2 +-
 testsuite/css/parser/declarations-valid-08.css     |   2 +-
 testsuite/css/parser/declarations-valid-09.css     |   2 +-
 testsuite/css/parser/declarations-valid-10.css     |   2 +-
 testsuite/css/parser/declarations-valid-11.css     |   2 +-
 testsuite/css/parser/declarations-valid-12.css     |   2 +-
 testsuite/css/parser/declarations-valid-13.css     |   2 +-
 testsuite/css/parser/declarations-valid-14.css     |   2 +-
 testsuite/css/parser/declarations-valid-15.css     |   2 +-
 testsuite/css/parser/declarations-valid-16.css     |   2 +-
 testsuite/css/parser/declarations-valid-17.css     |   2 +-
 testsuite/css/parser/declarations-valid-18.css     |   2 +-
 testsuite/css/parser/declarations-valid-22.css     |   2 +-
 testsuite/css/parser/declarations-valid-23.css     |   2 +-
 testsuite/css/parser/declarations-valid-24.css     |   2 +-
 testsuite/css/parser/declarations-valid-25.css     |   2 +-
 testsuite/css/parser/declarations-valid-26.css     |   2 +-
 testsuite/css/parser/declarations.errors           |   5 +-
 testsuite/css/parser/does-not-exist.errors         |   2 +-
 .../parser/freed-string-in-error-messages.errors   |   2 +-
 testsuite/css/parser/import-cyclic-1.css           |   2 +-
 testsuite/css/parser/import-cyclic-1.errors        |   2 +-
 testsuite/css/parser/import-cyclic-2.css           |   2 +-
 testsuite/css/parser/import-cyclic-2.errors        |   2 +-
 testsuite/css/parser/import-cyclic-3.css           |   2 +-
 testsuite/css/parser/import-cyclic-3.errors        |   2 +-
 testsuite/css/parser/import-nonexistant.errors     |   2 +-
 testsuite/css/parser/meson.build                   |   5 +
 testsuite/css/parser/no-semicolon.errors           |   2 +
 testsuite/css/parser/nth-child.css                 | 332 ++++++++++-----------
 testsuite/css/parser/test-css-parser.c             |  12 +-
 89 files changed, 382 insertions(+), 340 deletions(-)
---
diff --git a/testsuite/css/parser/animation-crash-3.12.errors 
b/testsuite/css/parser/animation-crash-3.12.errors
index 035482eba3..065d6d311b 100644
--- a/testsuite/css/parser/animation-crash-3.12.errors
+++ b/testsuite/css/parser/animation-crash-3.12.errors
@@ -1 +1 @@
-animation-crash-3.12.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+animation-crash-3.12.css:2:14-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-01.errors b/testsuite/css/parser/at-invalid-01.errors
index 2c54e9ec9d..851910659d 100644
--- a/testsuite/css/parser/at-invalid-01.errors
+++ b/testsuite/css/parser/at-invalid-01.errors
@@ -1 +1 @@
-at-invalid-01.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-01.css:1:9-10: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-02.errors b/testsuite/css/parser/at-invalid-02.errors
index 61307e3916..a0cf0f4488 100644
--- a/testsuite/css/parser/at-invalid-02.errors
+++ b/testsuite/css/parser/at-invalid-02.errors
@@ -1 +1 @@
-at-invalid-02.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-02.css:1:9-12: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-03.errors b/testsuite/css/parser/at-invalid-03.errors
index 5e9575f53a..ababc4e9b9 100644
--- a/testsuite/css/parser/at-invalid-03.errors
+++ b/testsuite/css/parser/at-invalid-03.errors
@@ -1 +1,3 @@
-at-invalid-03.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-03.css:1:13-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-03.css:1:9-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+at-invalid-03.css:1:1-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-04.errors b/testsuite/css/parser/at-invalid-04.errors
index c879cb35b6..f3470e135a 100644
--- a/testsuite/css/parser/at-invalid-04.errors
+++ b/testsuite/css/parser/at-invalid-04.errors
@@ -1 +1,3 @@
-at-invalid-04.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-04.css:1:13-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-04.css:1:9-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+at-invalid-04.css:1:1-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-05.errors b/testsuite/css/parser/at-invalid-05.errors
index 6b606facad..eaeb390ddb 100644
--- a/testsuite/css/parser/at-invalid-05.errors
+++ b/testsuite/css/parser/at-invalid-05.errors
@@ -1 +1,3 @@
-at-invalid-05.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-05.css:1:13-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-05.css:1:9-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+at-invalid-05.css:1:1-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-06.errors b/testsuite/css/parser/at-invalid-06.errors
index fbc5ecccda..781883c941 100644
--- a/testsuite/css/parser/at-invalid-06.errors
+++ b/testsuite/css/parser/at-invalid-06.errors
@@ -1 +1 @@
-at-invalid-06.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-06.css:1:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-07.errors b/testsuite/css/parser/at-invalid-07.errors
index 5abb2181b7..bcf101f658 100644
--- a/testsuite/css/parser/at-invalid-07.errors
+++ b/testsuite/css/parser/at-invalid-07.errors
@@ -1 +1 @@
-at-invalid-07.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-07.css:1:1-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-08.errors b/testsuite/css/parser/at-invalid-08.errors
index 76d8e06210..723db934c9 100644
--- a/testsuite/css/parser/at-invalid-08.errors
+++ b/testsuite/css/parser/at-invalid-08.errors
@@ -1 +1 @@
-at-invalid-08.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-08.css:1:20-26: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/at-invalid-09.errors b/testsuite/css/parser/at-invalid-09.errors
index 73cafa3729..22151b571c 100644
--- a/testsuite/css/parser/at-invalid-09.errors
+++ b/testsuite/css/parser/at-invalid-09.errors
@@ -1 +1 @@
-at-invalid-09.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-09.css:1:20-27: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/at-invalid-10.errors b/testsuite/css/parser/at-invalid-10.errors
index 1b70899ac1..274eb1bd62 100644
--- a/testsuite/css/parser/at-invalid-10.errors
+++ b/testsuite/css/parser/at-invalid-10.errors
@@ -1 +1 @@
-at-invalid-10.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-10.css:1:20-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-11.errors b/testsuite/css/parser/at-invalid-11.errors
index d5a5d2a65b..4740c0599d 100644
--- a/testsuite/css/parser/at-invalid-11.errors
+++ b/testsuite/css/parser/at-invalid-11.errors
@@ -1 +1 @@
-at-invalid-11.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-11.css:1:20-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-12.errors b/testsuite/css/parser/at-invalid-12.errors
index d402333d1e..7567285ad9 100644
--- a/testsuite/css/parser/at-invalid-12.errors
+++ b/testsuite/css/parser/at-invalid-12.errors
@@ -1 +1 @@
-at-invalid-12.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-12.css:1:38-44: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-13.errors b/testsuite/css/parser/at-invalid-13.errors
index 1cc20eb60e..6bb9d72acd 100644
--- a/testsuite/css/parser/at-invalid-13.errors
+++ b/testsuite/css/parser/at-invalid-13.errors
@@ -1 +1 @@
-at-invalid-13.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-13.css:1:32-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-14.errors b/testsuite/css/parser/at-invalid-14.errors
index 5ea3d43250..dcbdd47c66 100644
--- a/testsuite/css/parser/at-invalid-14.errors
+++ b/testsuite/css/parser/at-invalid-14.errors
@@ -1 +1 @@
-at-invalid-14.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-14.css:1:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-15.errors b/testsuite/css/parser/at-invalid-15.errors
index 20c8222160..6015a37a6e 100644
--- a/testsuite/css/parser/at-invalid-15.errors
+++ b/testsuite/css/parser/at-invalid-15.errors
@@ -1 +1 @@
-at-invalid-15.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-15.css:1:36-37: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-16.errors b/testsuite/css/parser/at-invalid-16.errors
index 36beecee49..01566b922f 100644
--- a/testsuite/css/parser/at-invalid-16.errors
+++ b/testsuite/css/parser/at-invalid-16.errors
@@ -1 +1 @@
-at-invalid-16.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-16.css:1:30-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-17.errors b/testsuite/css/parser/at-invalid-17.errors
index 15c00b2f4a..dfc18a31fc 100644
--- a/testsuite/css/parser/at-invalid-17.errors
+++ b/testsuite/css/parser/at-invalid-17.errors
@@ -1 +1 @@
-at-invalid-17.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-17.css:1:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-18.errors b/testsuite/css/parser/at-invalid-18.errors
index 7e39962835..f412bd2385 100644
--- a/testsuite/css/parser/at-invalid-18.errors
+++ b/testsuite/css/parser/at-invalid-18.errors
@@ -1 +1 @@
-at-invalid-18.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-18.css:1:39-40: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-19.errors b/testsuite/css/parser/at-invalid-19.errors
index d58b5aeef7..ac15f1b27c 100644
--- a/testsuite/css/parser/at-invalid-19.errors
+++ b/testsuite/css/parser/at-invalid-19.errors
@@ -1 +1 @@
-at-invalid-19.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-19.css:1:30-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-20.errors b/testsuite/css/parser/at-invalid-20.errors
index 533f9f6142..836e7cb53f 100644
--- a/testsuite/css/parser/at-invalid-20.errors
+++ b/testsuite/css/parser/at-invalid-20.errors
@@ -1 +1 @@
-at-invalid-20.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-20.css:1:15-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-21.errors b/testsuite/css/parser/at-invalid-21.errors
index 2a18d02336..a9f94125e0 100644
--- a/testsuite/css/parser/at-invalid-21.errors
+++ b/testsuite/css/parser/at-invalid-21.errors
@@ -1,2 +1,2 @@
-at-invalid-21.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-at-invalid-21.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-21.css:1:1-11: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-21.css:1:31-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-22.css b/testsuite/css/parser/at-invalid-22.css
new file mode 100644
index 0000000000..db9626914a
--- /dev/null
+++ b/testsuite/css/parser/at-invalid-22.css
@@ -0,0 +1 @@
+@define-color color darker ( @blue ) ;
diff --git a/testsuite/css/parser/at-invalid-22.errors b/testsuite/css/parser/at-invalid-22.errors
new file mode 100644
index 0000000000..168e43daff
--- /dev/null
+++ b/testsuite/css/parser/at-invalid-22.errors
@@ -0,0 +1 @@
+at-invalid-22.css:1:21-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-22.ref.css b/testsuite/css/parser/at-invalid-22.ref.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/testsuite/css/parser/at-valid-11.css b/testsuite/css/parser/at-valid-11.css
index db9626914a..5d6883fd36 100644
--- a/testsuite/css/parser/at-valid-11.css
+++ b/testsuite/css/parser/at-valid-11.css
@@ -1 +1 @@
-@define-color color darker ( @blue ) ;
+@define-color color darker( @blue ) ;
diff --git a/testsuite/css/parser/at-valid-16.css b/testsuite/css/parser/at-valid-16.css
index cc36511c6d..8004be0201 100644
--- a/testsuite/css/parser/at-valid-16.css
+++ b/testsuite/css/parser/at-valid-16.css
@@ -1 +1 @@
-@define-color color mix(shade (#121212, 0.5), mix (rgb(10%,20%,100%), @blue,0.5), 0.2);
+@define-color color mix(shade(#121212, 0.5), mix(rgb(10%,20%,100%), @blue,0.5), 0.2);
diff --git a/testsuite/css/parser/background-position-errors.errors 
b/testsuite/css/parser/background-position-errors.errors
index de4b227414..5d198850a1 100644
--- a/testsuite/css/parser/background-position-errors.errors
+++ b/testsuite/css/parser/background-position-errors.errors
@@ -1 +1 @@
-background-position-errors.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position-errors.css:2:24-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/background-position.errors b/testsuite/css/parser/background-position.errors
index 8a3e2c2b7c..2446e876b5 100644
--- a/testsuite/css/parser/background-position.errors
+++ b/testsuite/css/parser/background-position.errors
@@ -1,14 +1,12 @@
-background-position.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:18: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:66: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:70: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:90: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:102: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:110: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:122: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:126: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:150: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:154: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:6:28-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:18:28-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:26:28-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:38:29-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:42:29-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:66:30-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:70:30-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:90:31-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:102:31-37: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:110:31-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:150:28-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:154:28-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/background-position.ref.css 
b/testsuite/css/parser/background-position.ref.css
index a496921b92..8c7afc18f9 100644
--- a/testsuite/css/parser/background-position.ref.css
+++ b/testsuite/css/parser/background-position.ref.css
@@ -109,9 +109,11 @@ db {
 }
 
 eb {
+  background-position: left;
 }
 
 fb {
+  background-position: right;
 }
 
 gb {
diff --git a/testsuite/css/parser/border-infloop-3.12.errors b/testsuite/css/parser/border-infloop-3.12.errors
index 12870eb619..180a2d558c 100644
--- a/testsuite/css/parser/border-infloop-3.12.errors
+++ b/testsuite/css/parser/border-infloop-3.12.errors
@@ -1 +1 @@
-border-infloop-3.12.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-infloop-3.12.css:2:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/border-radius-shorthand.errors 
b/testsuite/css/parser/border-radius-shorthand.errors
index 55d3b8c184..8b0ebf376e 100644
--- a/testsuite/css/parser/border-radius-shorthand.errors
+++ b/testsuite/css/parser/border-radius-shorthand.errors
@@ -1,13 +1,13 @@
-border-radius-shorthand.css:64: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:68: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:72: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:76: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:80: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:84: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:88: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:92: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:96: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:100: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:104: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:108: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:112: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:64:18-22: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:68:22-26: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:72:26-30: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:76:30-34: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:80:36-40: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:84:40-44: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:88:44-48: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:92:48-52: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:96:18-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:100:18-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:104:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:108:34-37: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:112:44-47: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/border.errors b/testsuite/css/parser/border.errors
index 86d0d2a1ee..24b36bfff1 100644
--- a/testsuite/css/parser/border.errors
+++ b/testsuite/css/parser/border.errors
@@ -1,8 +1,8 @@
-border.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:30: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:34: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:46: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:50: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:54: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:26:25-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:30:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:34:23-25: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border.css:38:23-27: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border.css:42:23-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:46:29-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:50:31-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:54:29-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/calc-errors.css b/testsuite/css/parser/calc-errors.css
index b1464c30cb..592e1a3954 100644
--- a/testsuite/css/parser/calc-errors.css
+++ b/testsuite/css/parser/calc-errors.css
@@ -1,7 +1,3 @@
-a {
-  margin-left: calc(calc(1px));
-}
-
 b {
   margin-left: calc(1px + 2s);
 }
@@ -59,7 +55,7 @@ o {
 }
 
 p {
-  margin-left: calc((((((1px))));
+  margin-left: calc((((((1px))));));
 }
 
 q {
@@ -73,3 +69,7 @@ r {
 s {
   margin-left: calc(1px + (error));
 }
+
+t {
+  margin-left: calc((3px + 4px and a lot of junk));
+}
diff --git a/testsuite/css/parser/calc-errors.errors b/testsuite/css/parser/calc-errors.errors
index db05431565..da60d5d655 100644
--- a/testsuite/css/parser/calc-errors.errors
+++ b/testsuite/css/parser/calc-errors.errors
@@ -1,19 +1,19 @@
-calc-errors.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:10: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:14: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:18: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:22: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:30: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:34: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:46: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:50: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:54: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:58: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:62: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:66: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:70: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:74: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:2:27-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:6:27-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:10:21-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:14:27-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:18:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:22:21-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:26:27-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:30:21-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:34:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:38:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:42:25-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:46:25-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:50:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:54:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:58:33-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:62:35-36: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:66:27-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:70:28-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:74:32-49: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/calc-errors.ref.css b/testsuite/css/parser/calc-errors.ref.css
index 3966afd519..f7df1f634b 100644
--- a/testsuite/css/parser/calc-errors.ref.css
+++ b/testsuite/css/parser/calc-errors.ref.css
@@ -1,6 +1,3 @@
-a {
-}
-
 b {
 }
 
@@ -54,3 +51,6 @@ r {
 
 s {
 }
+
+t {
+}
diff --git a/testsuite/css/parser/calc.css b/testsuite/css/parser/calc.css
index cc511fa7de..0c07d7234d 100644
--- a/testsuite/css/parser/calc.css
+++ b/testsuite/css/parser/calc.css
@@ -37,3 +37,7 @@ i {
 j {
   border-bottom-right-radius: calc((1 + 1 + (1 + 1) + 1) * 1px) calc((1 / 1) * 1px);
 }
+
+k {
+  margin-left: calc(calc(1px));
+}
diff --git a/testsuite/css/parser/calc.ref.css b/testsuite/css/parser/calc.ref.css
index cc2ca59d82..eb36835552 100644
--- a/testsuite/css/parser/calc.ref.css
+++ b/testsuite/css/parser/calc.ref.css
@@ -37,3 +37,7 @@ i {
 j {
   border-bottom-right-radius: 5px 1px;
 }
+
+k {
+  margin-left: 1px;
+}
diff --git a/testsuite/css/parser/close-at-end-of-file.errors 
b/testsuite/css/parser/close-at-end-of-file.errors
index 34159058df..77028593ef 100644
--- a/testsuite/css/parser/close-at-end-of-file.errors
+++ b/testsuite/css/parser/close-at-end-of-file.errors
@@ -1 +1,2 @@
-close-at-end-of-file.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
+close-at-end-of-file.css:2:3-3:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+close-at-end-of-file.css:1:5-3:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/colors-errors.css b/testsuite/css/parser/colors-errors.css
index 4f7f3f938d..df9de80a0f 100644
--- a/testsuite/css/parser/colors-errors.css
+++ b/testsuite/css/parser/colors-errors.css
@@ -25,3 +25,8 @@ f {
 g {
   color: rgba(1,2,3,4,5);
 }
+
+h {
+  color: rgb(100%,0,0);
+}
+
diff --git a/testsuite/css/parser/colors-errors.errors b/testsuite/css/parser/colors-errors.errors
index 506c0b3ec4..b52d0256cf 100644
--- a/testsuite/css/parser/colors-errors.errors
+++ b/testsuite/css/parser/colors-errors.errors
@@ -1,7 +1,8 @@
-colors-errors.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:10: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:14: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:18: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:22: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:2:10-12: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:6:10-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:10:10-16: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:14:10-18: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:18:10-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:22:19-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:26:22-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:30:19-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/colors-errors.ref.css b/testsuite/css/parser/colors-errors.ref.css
index e458bcfc14..cfb1eff431 100644
--- a/testsuite/css/parser/colors-errors.ref.css
+++ b/testsuite/css/parser/colors-errors.ref.css
@@ -18,3 +18,6 @@ f {
 
 g {
 }
+
+h {
+}
diff --git a/testsuite/css/parser/colors-red.css b/testsuite/css/parser/colors-red.css
index ed69db6332..13d75908dd 100644
--- a/testsuite/css/parser/colors-red.css
+++ b/testsuite/css/parser/colors-red.css
@@ -14,10 +14,6 @@ d {
   color: rgba(100%,0%,0%,1);
 }
 
-e {
-  color: rgb(100%,0,0);
-}
-
 f {
   color: #f00;
 }
diff --git a/testsuite/css/parser/colors-red.ref.css b/testsuite/css/parser/colors-red.ref.css
index f8e68c1a68..ce6c42f623 100644
--- a/testsuite/css/parser/colors-red.ref.css
+++ b/testsuite/css/parser/colors-red.ref.css
@@ -14,10 +14,6 @@ d {
   color: rgb(255,0,0);
 }
 
-e {
-  color: rgb(255,0,0);
-}
-
 f {
   color: rgb(255,0,0);
 }
diff --git a/testsuite/css/parser/css-21-malformed-declarations.css 
b/testsuite/css/parser/css-21-malformed-declarations.css
index 7ea0cc6b6e..9bfbd0a3cc 100644
--- a/testsuite/css/parser/css-21-malformed-declarations.css
+++ b/testsuite/css/parser/css-21-malformed-declarations.css
@@ -1,7 +1,7 @@
-p { color:green }
-p { color:green; color }  /* malformed declaration missing ':', value */
-p { color:red;   color; color:green }  /* same with expected recovery */
-p { color:green; color: } /* malformed declaration missing value */
-p { color:red;   color:; color:green } /* same with expected recovery */
-p { color:green; color{;color:maroon} } /* unexpected tokens { } */
-p { color:red;   color{;color:maroon}; color:green } /* same with recovery */
+a { color:green }
+b { color:green; color }  /* malformed declaration missing ':', value */
+c { color:red;   color; color:green }  /* same with expected recovery */
+d { color:green; color: } /* malformed declaration missing value */
+e { color:red;   color:; color:green } /* same with expected recovery */
+f { color:green; color{;color:maroon} } /* unexpected tokens { } */
+g { color:red;   color{;color:maroon}; color:green } /* same with recovery */
diff --git a/testsuite/css/parser/css-21-malformed-declarations.errors 
b/testsuite/css/parser/css-21-malformed-declarations.errors
index 128b52e2ce..b3eb929f91 100644
--- a/testsuite/css/parser/css-21-malformed-declarations.errors
+++ b/testsuite/css/parser/css-21-malformed-declarations.errors
@@ -1,6 +1,13 @@
-css-21-malformed-declarations.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:4: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:5: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:7: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:1:5-17: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:2:24-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:2:18-24: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:3:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:3:25-37: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:4:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:4:18-25: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:5:24-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:5:26-38: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:6:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:6:18-39: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:7:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:7:40-52: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/css-21-malformed-declarations.ref.css 
b/testsuite/css/parser/css-21-malformed-declarations.ref.css
index f83e679167..deda947955 100644
--- a/testsuite/css/parser/css-21-malformed-declarations.ref.css
+++ b/testsuite/css/parser/css-21-malformed-declarations.ref.css
@@ -1,27 +1,27 @@
-p {
+a {
   color: rgb(0,128,0);
 }
 
-p {
+b {
   color: rgb(0,128,0);
 }
 
-p {
+c {
   color: rgb(0,128,0);
 }
 
-p {
+d {
   color: rgb(0,128,0);
 }
 
-p {
+e {
   color: rgb(0,128,0);
 }
 
-p {
+f {
   color: rgb(0,128,0);
 }
 
-p {
+g {
   color: rgb(0,128,0);
 }
diff --git a/testsuite/css/parser/css-21-malformed-statements.errors 
b/testsuite/css/parser/css-21-malformed-statements.errors
index 23b3b4b23a..a06d48d89b 100644
--- a/testsuite/css/parser/css-21-malformed-statements.errors
+++ b/testsuite/css/parser/css-21-malformed-statements.errors
@@ -1,4 +1,4 @@
-css-21-malformed-statements.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-statements.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-statements.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-statements.css:4: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:1:3-8: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:2:1-5: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:3:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:4:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-01.errors 
b/testsuite/css/parser/declarations-invalid-01.errors
index 4114795b35..fde89fed67 100644
--- a/testsuite/css/parser/declarations-invalid-01.errors
+++ b/testsuite/css/parser/declarations-invalid-01.errors
@@ -1 +1,2 @@
-declarations-invalid-01.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-01.css:1:11-12: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-01.css:1:5-11: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-02.errors 
b/testsuite/css/parser/declarations-invalid-02.errors
index b267550163..41caa3f86b 100644
--- a/testsuite/css/parser/declarations-invalid-02.errors
+++ b/testsuite/css/parser/declarations-invalid-02.errors
@@ -1 +1,2 @@
-declarations-invalid-02.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-02.css:1:24-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-02.css:1:18-24: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-03.errors 
b/testsuite/css/parser/declarations-invalid-03.errors
index d804db4eb8..0298d5cfaf 100644
--- a/testsuite/css/parser/declarations-invalid-03.errors
+++ b/testsuite/css/parser/declarations-invalid-03.errors
@@ -1 +1,2 @@
-declarations-invalid-03.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-03.css:1:21-22: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-03.css:1:23-35: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-04.errors 
b/testsuite/css/parser/declarations-invalid-04.errors
index de0de60ddb..10ad666997 100644
--- a/testsuite/css/parser/declarations-invalid-04.errors
+++ b/testsuite/css/parser/declarations-invalid-04.errors
@@ -1 +1,2 @@
-declarations-invalid-04.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-04.css:1:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-04.css:1:18-25: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-05.errors 
b/testsuite/css/parser/declarations-invalid-05.errors
index 061e4b27b3..e67bf467ad 100644
--- a/testsuite/css/parser/declarations-invalid-05.errors
+++ b/testsuite/css/parser/declarations-invalid-05.errors
@@ -1 +1,2 @@
-declarations-invalid-05.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-05.css:1:22-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-05.css:1:24-36: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-06.errors 
b/testsuite/css/parser/declarations-invalid-06.errors
index a10b6d26ad..fc1a0e077c 100644
--- a/testsuite/css/parser/declarations-invalid-06.errors
+++ b/testsuite/css/parser/declarations-invalid-06.errors
@@ -1 +1,2 @@
-declarations-invalid-06.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-06.css:1:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-06.css:1:18-39: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-07.errors 
b/testsuite/css/parser/declarations-invalid-07.errors
index 4311252694..2eb16e1921 100644
--- a/testsuite/css/parser/declarations-invalid-07.errors
+++ b/testsuite/css/parser/declarations-invalid-07.errors
@@ -1 +1,2 @@
-declarations-invalid-07.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-07.css:1:21-22: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-07.css:1:38-50: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-08.errors 
b/testsuite/css/parser/declarations-invalid-08.errors
index de507ef742..8de3412c0e 100644
--- a/testsuite/css/parser/declarations-invalid-08.errors
+++ b/testsuite/css/parser/declarations-invalid-08.errors
@@ -1,3 +1,4 @@
-declarations-invalid-08.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations-invalid-08.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations-invalid-08.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-08.css:1:5-12: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+declarations-invalid-08.css:1:14-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-08.css:1:5-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations-invalid-08.css:1:3-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-valid-02.errors 
b/testsuite/css/parser/declarations-valid-02.errors
new file mode 100644
index 0000000000..98b1d42e47
--- /dev/null
+++ b/testsuite/css/parser/declarations-valid-02.errors
@@ -0,0 +1 @@
+declarations-valid-02.css:1:5-21: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-valid-04.css b/testsuite/css/parser/declarations-valid-04.css
index 630d941455..8a1a0969ac 100644
--- a/testsuite/css/parser/declarations-valid-04.css
+++ b/testsuite/css/parser/declarations-valid-04.css
@@ -1 +1 @@
-* { font: bold 15px sans }
+* { font: bold 15px sans ;}
diff --git a/testsuite/css/parser/declarations-valid-05.css b/testsuite/css/parser/declarations-valid-05.css
index c3997d3a27..b05777025e 100644
--- a/testsuite/css/parser/declarations-valid-05.css
+++ b/testsuite/css/parser/declarations-valid-05.css
@@ -1 +1 @@
-* { color: red }
+* { color: red; }
diff --git a/testsuite/css/parser/declarations-valid-08.css b/testsuite/css/parser/declarations-valid-08.css
index a89205d44e..280e9f7f8f 100644
--- a/testsuite/css/parser/declarations-valid-08.css
+++ b/testsuite/css/parser/declarations-valid-08.css
@@ -1 +1 @@
-* { font: /* comment here */ 15px Sans }
+* { font: /* comment here */ 15px Sans; }
diff --git a/testsuite/css/parser/declarations-valid-09.css b/testsuite/css/parser/declarations-valid-09.css
index 88530f0b90..667c6b404c 100644
--- a/testsuite/css/parser/declarations-valid-09.css
+++ b/testsuite/css/parser/declarations-valid-09.css
@@ -1 +1 @@
-* { color: red; background-color: shade (@bg_color, 0.5) }
+* { color: red; background-color: shade(@bg_color, 0.5); }
diff --git a/testsuite/css/parser/declarations-valid-10.css b/testsuite/css/parser/declarations-valid-10.css
index 8ecb711633..d2b0208591 100644
--- a/testsuite/css/parser/declarations-valid-10.css
+++ b/testsuite/css/parser/declarations-valid-10.css
@@ -1 +1 @@
-* { margin: 5px }
+* { margin: 5px ; }
diff --git a/testsuite/css/parser/declarations-valid-11.css b/testsuite/css/parser/declarations-valid-11.css
index 975401f562..d928f5c4d1 100644
--- a/testsuite/css/parser/declarations-valid-11.css
+++ b/testsuite/css/parser/declarations-valid-11.css
@@ -1 +1 @@
-* { margin: 5px 10px }
+* { margin: 5px 10px; }
diff --git a/testsuite/css/parser/declarations-valid-12.css b/testsuite/css/parser/declarations-valid-12.css
index a9c63a9daa..849cc63795 100644
--- a/testsuite/css/parser/declarations-valid-12.css
+++ b/testsuite/css/parser/declarations-valid-12.css
@@ -1 +1 @@
-* { margin: 5px 10px 3px }
+* { margin: 5px 10px 3px; }
diff --git a/testsuite/css/parser/declarations-valid-13.css b/testsuite/css/parser/declarations-valid-13.css
index 15a4776a31..0f7b7f00d7 100644
--- a/testsuite/css/parser/declarations-valid-13.css
+++ b/testsuite/css/parser/declarations-valid-13.css
@@ -1 +1 @@
-* { margin: 5px 10px 3px 5px }
+* { margin: 5px 10px 3px 5px; }
diff --git a/testsuite/css/parser/declarations-valid-14.css b/testsuite/css/parser/declarations-valid-14.css
index f03feac39b..f9f4143b8b 100644
--- a/testsuite/css/parser/declarations-valid-14.css
+++ b/testsuite/css/parser/declarations-valid-14.css
@@ -1 +1 @@
-* { padding: 5px }
+* { padding: 5px; }
diff --git a/testsuite/css/parser/declarations-valid-15.css b/testsuite/css/parser/declarations-valid-15.css
index 5e84be0790..2a427b220f 100644
--- a/testsuite/css/parser/declarations-valid-15.css
+++ b/testsuite/css/parser/declarations-valid-15.css
@@ -1 +1 @@
-* { padding: 5px 10px }
+* { padding: 5px 10px; }
diff --git a/testsuite/css/parser/declarations-valid-16.css b/testsuite/css/parser/declarations-valid-16.css
index fe8a64e819..6af4bc59b2 100644
--- a/testsuite/css/parser/declarations-valid-16.css
+++ b/testsuite/css/parser/declarations-valid-16.css
@@ -1 +1 @@
-* { border-width: 5em; border-radius: 10ex }
+* { border-width: 5em; border-radius: 10ex; }
diff --git a/testsuite/css/parser/declarations-valid-17.css b/testsuite/css/parser/declarations-valid-17.css
index a08963ddda..09a202167b 100644
--- a/testsuite/css/parser/declarations-valid-17.css
+++ b/testsuite/css/parser/declarations-valid-17.css
@@ -1 +1 @@
-* { border-color: #ff00ff }
+* { border-color: #ff00ff; }
diff --git a/testsuite/css/parser/declarations-valid-18.css b/testsuite/css/parser/declarations-valid-18.css
index d75aa58406..f4074c7ac0 100644
--- a/testsuite/css/parser/declarations-valid-18.css
+++ b/testsuite/css/parser/declarations-valid-18.css
@@ -1 +1 @@
-* { font: 10pt definitelydoesnotexist }
+* { font: 10pt definitelydoesnotexist; }
diff --git a/testsuite/css/parser/declarations-valid-22.css b/testsuite/css/parser/declarations-valid-22.css
index dff250639c..c84459347f 100644
--- a/testsuite/css/parser/declarations-valid-22.css
+++ b/testsuite/css/parser/declarations-valid-22.css
@@ -1 +1 @@
-* { border-image: url("./test.png") 3 4 3 4 stretch       }
+* { border-image: url("./test.png") 3 4 3 4 stretch   ;   }
diff --git a/testsuite/css/parser/declarations-valid-23.css b/testsuite/css/parser/declarations-valid-23.css
index 1cbeeb97cf..34417ae2ae 100644
--- a/testsuite/css/parser/declarations-valid-23.css
+++ b/testsuite/css/parser/declarations-valid-23.css
@@ -1 +1 @@
-* { border-image: url("./test.png") 3 4 3 4 repeat stretch}
+* { border-image: url("./test.png") 3 4 3 4 repeat stretch;}
diff --git a/testsuite/css/parser/declarations-valid-24.css b/testsuite/css/parser/declarations-valid-24.css
index cb1794aee8..cf054e9723 100644
--- a/testsuite/css/parser/declarations-valid-24.css
+++ b/testsuite/css/parser/declarations-valid-24.css
@@ -1 +1 @@
-* { transition: 150ms ease-in-out                          }
+* { transition: 150ms ease-in-out                          ;}
diff --git a/testsuite/css/parser/declarations-valid-25.css b/testsuite/css/parser/declarations-valid-25.css
index 957cc6327e..333d91425c 100644
--- a/testsuite/css/parser/declarations-valid-25.css
+++ b/testsuite/css/parser/declarations-valid-25.css
@@ -1 +1 @@
-* { transition: 1s linear loop                             }
+* { transition: 1s linear loop;                             }
diff --git a/testsuite/css/parser/declarations-valid-26.css b/testsuite/css/parser/declarations-valid-26.css
index e49c23a35b..c6d867a70d 100644
--- a/testsuite/css/parser/declarations-valid-26.css
+++ b/testsuite/css/parser/declarations-valid-26.css
@@ -1 +1 @@
-* { color: red; background-color: transparent }
+* { color: red; background-color: transparent; }
diff --git a/testsuite/css/parser/declarations.errors b/testsuite/css/parser/declarations.errors
index d80ddf9cc8..2ec69c1419 100644
--- a/testsuite/css/parser/declarations.errors
+++ b/testsuite/css/parser/declarations.errors
@@ -1,4 +1,7 @@
-declarations.css:24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:1:5-6: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:1:6-7: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:1:7-8: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:24:5-15: error: GTK_CSS_PARSER_ERROR_SYNTAX
 declarations.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
 declarations.css:28: error: GTK_CSS_PARSER_ERROR_SYNTAX
 declarations.css:30: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/does-not-exist.errors b/testsuite/css/parser/does-not-exist.errors
index 0fb86c365d..0b78584d7a 100644
--- a/testsuite/css/parser/does-not-exist.errors
+++ b/testsuite/css/parser/does-not-exist.errors
@@ -1 +1 @@
-does-not-exist.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+does-not-exist.css:2:23-27: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/freed-string-in-error-messages.errors 
b/testsuite/css/parser/freed-string-in-error-messages.errors
index 4e237ca530..c5fcc9a810 100644
--- a/testsuite/css/parser/freed-string-in-error-messages.errors
+++ b/testsuite/css/parser/freed-string-in-error-messages.errors
@@ -1 +1 @@
-freed-string-in-error-messages.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+freed-string-in-error-messages.css:2:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/import-cyclic-1.css b/testsuite/css/parser/import-cyclic-1.css
index eaa1731dda..31e7a5b144 100644
--- a/testsuite/css/parser/import-cyclic-1.css
+++ b/testsuite/css/parser/import-cyclic-1.css
@@ -1,5 +1,5 @@
 @import url("import-cyclic-2.css");
 
 a {
-  padding-top: 1px
+  padding-top: 1px;
 }
diff --git a/testsuite/css/parser/import-cyclic-1.errors b/testsuite/css/parser/import-cyclic-1.errors
index b88d31671e..4a5f739ee6 100644
--- a/testsuite/css/parser/import-cyclic-1.errors
+++ b/testsuite/css/parser/import-cyclic-1.errors
@@ -1 +1 @@
-import-cyclic-3.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-cyclic-3.css:1:1-36: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-cyclic-2.css b/testsuite/css/parser/import-cyclic-2.css
index 9e5b89c712..1841df2bdb 100644
--- a/testsuite/css/parser/import-cyclic-2.css
+++ b/testsuite/css/parser/import-cyclic-2.css
@@ -1,5 +1,5 @@
 @import url("import-cyclic-3.css");
 
 a {
-  padding-top: 2px
+  padding-top: 2px;
 }
diff --git a/testsuite/css/parser/import-cyclic-2.errors b/testsuite/css/parser/import-cyclic-2.errors
index bf7fecbe91..1ff1a9b428 100644
--- a/testsuite/css/parser/import-cyclic-2.errors
+++ b/testsuite/css/parser/import-cyclic-2.errors
@@ -1 +1 @@
-import-cyclic-1.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-cyclic-1.css:1:1-36: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-cyclic-3.css b/testsuite/css/parser/import-cyclic-3.css
index 7ada04c6d2..da93af9bcb 100644
--- a/testsuite/css/parser/import-cyclic-3.css
+++ b/testsuite/css/parser/import-cyclic-3.css
@@ -1,5 +1,5 @@
 @import url("import-cyclic-1.css");
 
 a {
-  padding-top: 3px
+  padding-top: 3px;
 }
diff --git a/testsuite/css/parser/import-cyclic-3.errors b/testsuite/css/parser/import-cyclic-3.errors
index 154684e14a..d5e9e51e43 100644
--- a/testsuite/css/parser/import-cyclic-3.errors
+++ b/testsuite/css/parser/import-cyclic-3.errors
@@ -1 +1 @@
-import-cyclic-2.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-cyclic-2.css:1:1-36: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-nonexistant.errors b/testsuite/css/parser/import-nonexistant.errors
index db91da39d4..76e5fae4f7 100644
--- a/testsuite/css/parser/import-nonexistant.errors
+++ b/testsuite/css/parser/import-nonexistant.errors
@@ -1 +1 @@
-import-nonexistant.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-nonexistant.css:1:1-93: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build
index 9451633efd..bedebff64e 100644
--- a/testsuite/css/parser/meson.build
+++ b/testsuite/css/parser/meson.build
@@ -101,6 +101,9 @@ test_data = [
   'at-invalid-21.css',
   'at-invalid-21.errors',
   'at-invalid-21.ref.css',
+  'at-invalid-22.css',
+  'at-invalid-22.errors',
+  'at-invalid-22.ref.css',
   'at-valid-01.css',
   'at-valid-01.ref.css',
   'at-valid-02.css',
@@ -247,6 +250,7 @@ test_data = [
   'declarations-valid-01.css',
   'declarations-valid-01.ref.css',
   'declarations-valid-02.css',
+  'declarations-valid-02.errors',
   'declarations-valid-02.ref.css',
   'declarations-valid-03.css',
   'declarations-valid-03.ref.css',
@@ -344,6 +348,7 @@ test_data = [
   'min-width.css',
   'min-width.ref.css',
   'no-semicolon.css',
+  'no-semicolon.errors',
   'no-semicolon.ref.css',
   'not.css',
   'not.ref.css',
diff --git a/testsuite/css/parser/no-semicolon.errors b/testsuite/css/parser/no-semicolon.errors
new file mode 100644
index 0000000000..0362acc984
--- /dev/null
+++ b/testsuite/css/parser/no-semicolon.errors
@@ -0,0 +1,2 @@
+no-semicolon.css:2:3-3:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+no-semicolon.css:4:7-25: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/nth-child.css b/testsuite/css/parser/nth-child.css
index 7860a3b3db..1c68b541a6 100644
--- a/testsuite/css/parser/nth-child.css
+++ b/testsuite/css/parser/nth-child.css
@@ -1,292 +1,292 @@
-a:nth-last-child( odd  ) { color: red }
-a:nth-child(even   ) { color: red }
-b:nth-child(   /**/n) { color: red }
+a:nth-last-child( odd  ) { color: red; }
+a:nth-child(even   ) { color: red; }
+b:nth-child(   /**/n) { color: red; }
 c:nth-child(/**/    n  +
-0) { color: red }
-d:nth-child(   n +  1) { color: red }
-e:nth-child(    /**/n+ 2) { color: red }
-f:nth-last-child(              n+      10) { color: red }
+0) { color: red; }
+d:nth-child(   n +  1) { color: red; }
+e:nth-child(    /**/n+ 2) { color: red; }
+f:nth-last-child(              n+      10) { color: red; }
 g:nth-child(
 
 
-n) { color: red }
+n) { color: red; }
 h:nth-child(/**/       n
--  0) { color: red }
+-  0) { color: red; }
 i:nth-child(
-/**/ n  -1) { color: red }
-j:nth-child(/**/  /**/n - 2) { color: red }
+/**/ n  -1) { color: red; }
+j:nth-child(/**/  /**/n - 2) { color: red; }
 k:nth-last-child(       n  -
-10) { color: red }
-l:nth-last-child( /**/0) { color: red }
+10) { color: red; }
+l:nth-last-child( /**/0) { color: red; }
 m:nth-child(
- 0n) { color: red }
+ 0n) { color: red; }
 n:nth-last-child( /**/0/**/n
 +
-0) { color: red }
-o:nth-last-child(   0 n  +     1) { color: red }
-p:nth-last-child(      0n+/**/2) { color: red }
+0) { color: red; }
+o:nth-last-child(   0 n  +     1) { color: red; }
+p:nth-last-child(      0n+/**/2) { color: red; }
 q:nth-last-child(
- 0     n  +    10) { color: red }
+ 0     n  +    10) { color: red; }
 r:nth-child(  0
-n) { color: red }
+n) { color: red; }
 s:nth-child(
-       0 n  -/**/0) { color: red }
+       0 n  -/**/0) { color: red; }
 t:nth-last-child(  
 0
 n
--      1) { color: red }
-u:nth-last-child(   0  n  -/**/2) { color: red }
-v:nth-last-child( 0n  -10) { color: red }
-w:nth-last-child(  1) { color: red }
+-      1) { color: red; }
+u:nth-last-child(   0  n  -/**/2) { color: red; }
+v:nth-last-child( 0n  -10) { color: red; }
+w:nth-last-child(  1) { color: red; }
 x:nth-child( 
-1n) { color: red }
+1n) { color: red; }
 y:nth-child(/**//**/1  n +
-0) { color: red }
+0) { color: red; }
 z:nth-child(
 1
 n +
-1) { color: red }
+1) { color: red; }
 ab:nth-child(
- 1 n   +2) { color: red }
+ 1 n   +2) { color: red; }
 bb:nth-last-child(     1n  +
-10) { color: red }
-cb:nth-last-child(1/**/n) { color: red }
-db:nth-last-child(      1  n   -0) { color: red }
+10) { color: red; }
+cb:nth-last-child(1/**/n) { color: red; }
+db:nth-last-child(      1  n   -0) { color: red; }
 eb:nth-child( 1 n-
-1) { color: red }
+1) { color: red; }
 fb:nth-child(/**/
 1  n-
-2) { color: red }
-gb:nth-child(          1n  -10) { color: red }
-hb:nth-last-child(/**/  2) { color: red }
-ib:nth-child( 2 n) { color: red }
+2) { color: red; }
+gb:nth-child(          1n  -10) { color: red; }
+hb:nth-last-child(/**/  2) { color: red; }
+ib:nth-child( 2 n) { color: red; }
 jb:nth-last-child(   2 n +
-0) { color: red }
-kb:nth-child(/**/      2n+     1) { color: red }
+0) { color: red; }
+kb:nth-child(/**/      2n+     1) { color: red; }
 lb:nth-child(/**//**/2/**/n
-+  2) { color: red }
++  2) { color: red; }
 mb:nth-last-child(
 2
 n  +
-10) { color: red }
+10) { color: red; }
 nb:nth-last-child(  
-2n) { color: red }
+2n) { color: red; }
 ob:nth-child( 
-2      n  -    0) { color: red }
+2      n  -    0) { color: red; }
 pb:nth-last-child(
- 2n/**/-/**/1) { color: red }
-qb:nth-child( /**/2    n - 2) { color: red }
+ 2n/**/-/**/1) { color: red; }
+qb:nth-child( /**/2    n - 2) { color: red; }
 rb:nth-last-child(
-       2/**/n -        10) { color: red }
-sb:nth-child(    10) { color: red }
+       2/**/n -        10) { color: red; }
+sb:nth-child(    10) { color: red; }
 tb:nth-last-child(
-       10n) { color: red }
+       10n) { color: red; }
 ub:nth-last-child(
-  10/**/n/**/+  0) { color: red }
+  10/**/n/**/+  0) { color: red; }
 vb:nth-child(  10
-n+/**/1) { color: red }
+n+/**/1) { color: red; }
 wb:nth-last-child(     10 n  +
-2) { color: red }
-xb:nth-child(   10/**/n  +  10) { color: red }
+2) { color: red; }
+xb:nth-child(   10/**/n  +  10) { color: red; }
 yb:nth-last-child(       10
-n) { color: red }
+n) { color: red; }
 zb:nth-last-child( 10  n
--0) { color: red }
+-0) { color: red; }
 ac:nth-last-child(10n/**/-
-1) { color: red }
+1) { color: red; }
 bc:nth-child(  10 n
--/**/2) { color: red }
+-/**/2) { color: red; }
 cc:nth-child(
 /**/10 n
--  10) { color: red }
-dc:nth-child( even     ) { color: red }
+-  10) { color: red; }
+dc:nth-child( even     ) { color: red; }
 ec:nth-last-child(
 +
-/**/n) { color: red }
+/**/n) { color: red; }
 fc:nth-child(  +   n+
-0) { color: red }
+0) { color: red; }
 gc:nth-child(/**/+
 
-n  +   1) { color: red }
-hc:nth-last-child(/**/+ n      +/**/2) { color: red }
+n  +   1) { color: red; }
+hc:nth-last-child(/**/+ n      +/**/2) { color: red; }
 ic:nth-last-child(  +  
-n      +10) { color: red }
-jc:nth-last-child( +   n) { color: red }
-kc:nth-last-child( +/**/  n    - 0) { color: red }
-lc:nth-last-child( +n  -       1) { color: red }
+n      +10) { color: red; }
+jc:nth-last-child( +   n) { color: red; }
+kc:nth-last-child( +/**/  n    - 0) { color: red; }
+lc:nth-last-child( +n  -       1) { color: red; }
 mc:nth-child(
-+        n-2) { color: red }
-nc:nth-last-child(+  n -10) { color: red }
++        n-2) { color: red; }
+nc:nth-last-child(+  n -10) { color: red; }
 oc:nth-child(
-+  0) { color: red }
-pc:nth-child(  +0      n) { color: red }
++  0) { color: red; }
+pc:nth-child(  +0      n) { color: red; }
 qc:nth-last-child(     +/**/0/**/n
 +
-0) { color: red }
-rc:nth-last-child(/**/+        0  n +  1) { color: red }
+0) { color: red; }
+rc:nth-last-child(/**/+        0  n +  1) { color: red; }
 sc:nth-last-child(
-+0  n/**/+2) { color: red }
++0  n/**/+2) { color: red; }
 tc:nth-child(  +       0
-n+     10) { color: red }
+n+     10) { color: red; }
 uc:nth-child(
 + 0
-n) { color: red }
+n) { color: red; }
 vc:nth-last-child(
 +      0n
 -
-0) { color: red }
-wc:nth-last-child(/**/+/**/0n  -       1) { color: red }
+0) { color: red; }
+wc:nth-last-child(/**/+/**/0n  -       1) { color: red; }
 xc:nth-child(  +
-0n     -  2) { color: red }
+0n     -  2) { color: red; }
 yc:nth-last-child(
-+  0/**/n      -/**/10) { color: red }
++  0/**/n      -/**/10) { color: red; }
 zc:nth-child(+
-1) { color: red }
+1) { color: red; }
 ad:nth-child(/**/+     1
-n) { color: red }
+n) { color: red; }
 bd:nth-last-child(+/**/1  n +
-0) { color: red }
+0) { color: red; }
 cd:nth-child(/**/+/**/1
 n      +
-1) { color: red }
+1) { color: red; }
 dd:nth-child(/**/+
-1      n  +2) { color: red }
+1      n  +2) { color: red; }
 ed:nth-child(
 +  1n +
-10) { color: red }
-fd:nth-child(  +  1 n) { color: red }
+10) { color: red; }
+fd:nth-child(  +  1 n) { color: red; }
 gd:nth-child(  +  1
-n  -0) { color: red }
-hd:nth-child(+  1n-  1) { color: red }
-id:nth-child(  +       1 n-    2) { color: red }
-jd:nth-last-child( +/**/1n  -/**/10) { color: red }
-kd:nth-last-child(  + 2) { color: red }
-ld:nth-child(/**/+     2n) { color: red }
-md:nth-last-child(  +  2 n/**/+/**/0) { color: red }
+n  -0) { color: red; }
+hd:nth-child(+  1n-  1) { color: red; }
+id:nth-child(  +       1 n-    2) { color: red; }
+jd:nth-last-child( +/**/1n  -/**/10) { color: red; }
+kd:nth-last-child(  + 2) { color: red; }
+ld:nth-child(/**/+     2n) { color: red; }
+md:nth-last-child(  +  2 n/**/+/**/0) { color: red; }
 nd:nth-child(/**/+     2
-n      +       1) { color: red }
+n      +       1) { color: red; }
 od:nth-child(  +  2  n +
-2) { color: red }
+2) { color: red; }
 pd:nth-last-child(
-+ 2/**/n  +/**/10) { color: red }
-qd:nth-last-child(+/**/2/**/n) { color: red }
-rd:nth-child(+  2  n/**/-0) { color: red }
++ 2/**/n  +/**/10) { color: red; }
+qd:nth-last-child(+/**/2/**/n) { color: red; }
+rd:nth-child(+  2  n/**/-0) { color: red; }
 sd:nth-child( +  2
-n -    1) { color: red }
+n -    1) { color: red; }
 td:nth-last-child(     +2
 n
--      2) { color: red }
+-      2) { color: red; }
 ud:nth-last-child( +  2
-n      -  10) { color: red }
-vd:nth-last-child(+  10) { color: red }
-wd:nth-child(  +10n) { color: red }
+n      -  10) { color: red; }
+vd:nth-last-child(+  10) { color: red; }
+wd:nth-child(  +10n) { color: red; }
 xd:nth-last-child(/**/+
 10
-n      +  0) { color: red }
-yd:nth-last-child(/**/+  10    n       +/**/1) { color: red }
-zd:nth-last-child(  + 10  n+   2) { color: red }
+n      +  0) { color: red; }
+yd:nth-last-child(/**/+  10    n       +/**/1) { color: red; }
+zd:nth-last-child(  + 10  n+   2) { color: red; }
 ae:nth-last-child(
-+ 10 n +/**/10) { color: red }
-be:nth-last-child(     +       10/**/n) { color: red }
-ce:nth-last-child(     + 10/**/n-  0) { color: red }
++ 10 n +/**/10) { color: red; }
+be:nth-last-child(     +       10/**/n) { color: red; }
+ce:nth-last-child(     + 10/**/n-  0) { color: red; }
 de:nth-child(+10  n-
-1) { color: red }
-ee:nth-last-child( +/**/10     n/**/-2) { color: red }
+1) { color: red; }
+ee:nth-last-child( +/**/10     n/**/-2) { color: red; }
 fe:nth-last-child(  +
-10/**/n        -10) { color: red }
+10/**/n        -10) { color: red; }
 ge:nth-last-child(
-odd/**/) { color: red }
-he:nth-last-child(/**/-   n) { color: red }
+odd/**/) { color: red; }
+he:nth-last-child(/**/-   n) { color: red; }
 ie:nth-last-child(
 - 
 n      +
-0) { color: red }
-je:nth-child(-/**/     n +  1) { color: red }
-ke:nth-last-child(/**/- n      +2) { color: red }
+0) { color: red; }
+je:nth-child(-/**/     n +  1) { color: red; }
+ke:nth-last-child(/**/- n      +2) { color: red; }
 le:nth-last-child(/**/-        n
-+  10) { color: red }
++  10) { color: red; }
 me:nth-last-child(
--/**/ n) { color: red }
+-/**/ n) { color: red; }
 ne:nth-child(
 -      n
--  0) { color: red }
-oe:nth-last-child(-    /**/n-1) { color: red }
+-  0) { color: red; }
+oe:nth-last-child(-    /**/n-1) { color: red; }
 pe:nth-child(  - 
-n - 2) { color: red }
-qe:nth-last-child(/**/-/**//**/n/**/-  10) { color: red }
-re:nth-child(  -/**/0) { color: red }
+n - 2) { color: red; }
+qe:nth-last-child(/**/-/**//**/n/**/-  10) { color: red; }
+re:nth-child(  -/**/0) { color: red; }
 se:nth-last-child(/**/-
-0 n) { color: red }
+0 n) { color: red; }
 te:nth-child(
 -      0 n+
-0) { color: red }
+0) { color: red; }
 ue:nth-child(  -
-0/**/n+/**/1) { color: red }
+0/**/n+/**/1) { color: red; }
 ve:nth-last-child(
 -/**/0 n
-+      2) { color: red }
++      2) { color: red; }
 we:nth-last-child(
--0  n/**/+ 10) { color: red }
+-0  n/**/+ 10) { color: red; }
 xe:nth-last-child(-    0
-n) { color: red }
+n) { color: red; }
 ye:nth-last-child(     -0      n
--  0) { color: red }
-ze:nth-last-child( -   0 n -/**/1) { color: red }
-af:nth-last-child(  -0/**/n    - 2) { color: red }
+-  0) { color: red; }
+ze:nth-last-child( -   0 n -/**/1) { color: red; }
+af:nth-last-child(  -0/**/n    - 2) { color: red; }
 bf:nth-child( - 0n
--10) { color: red }
-cf:nth-child(  -  1) { color: red }
+-10) { color: red; }
+cf:nth-child(  -  1) { color: red; }
 df:nth-child( -        1
-n) { color: red }
-ef:nth-last-child(/**/-1 n+  0) { color: red }
+n) { color: red; }
+ef:nth-last-child(/**/-1 n+  0) { color: red; }
 ff:nth-child(
 -/**/1  n/**/+
-1) { color: red }
+1) { color: red; }
 gf:nth-last-child(-
-1 n  + 2) { color: red }
+1 n  + 2) { color: red; }
 hf:nth-last-child(     -
 1      n
 +
-10) { color: red }
+10) { color: red; }
 if:nth-child(
--  1  n) { color: red }
-jf:nth-last-child(-  1 n - 0) { color: red }
+-  1  n) { color: red; }
+jf:nth-last-child(-  1 n - 0) { color: red; }
 kf:nth-child(-  1  n -
-1) { color: red }
-lf:nth-child(  -  1/**/n -/**/2) { color: red }
+1) { color: red; }
+lf:nth-child(  -  1/**/n -/**/2) { color: red; }
 mf:nth-last-child(  -
-1/**/n  -/**/10) { color: red }
-nf:nth-last-child(/**/-/**/2) { color: red }
-of:nth-child( -  2/**/n) { color: red }
+1/**/n  -/**/10) { color: red; }
+nf:nth-last-child(/**/-/**/2) { color: red; }
+of:nth-child( -  2/**/n) { color: red; }
 pf:nth-child(
 - 2
-n +  0) { color: red }
-qf:nth-child(  -  2 n +/**/1) { color: red }
+n +  0) { color: red; }
+qf:nth-child(  -  2 n +/**/1) { color: red; }
 rf:nth-child(/**/-     2
 n  +
-2) { color: red }
+2) { color: red; }
 sf:nth-last-child(  -/**/2/**/n
-+  10) { color: red }
-tf:nth-child(  -2 n) { color: red }
-uf:nth-child(/**/- 2n  - 0) { color: red }
-vf:nth-last-child( -2 n-1) { color: red }
-wf:nth-last-child(-  2/**/n  -  2) { color: red }
++  10) { color: red; }
+tf:nth-child(  -2 n) { color: red; }
+uf:nth-child(/**/- 2n  - 0) { color: red; }
+vf:nth-last-child( -2 n-1) { color: red; }
+wf:nth-last-child(-  2/**/n  -  2) { color: red; }
 xf:nth-child(  -2
 n-
-10) { color: red }
+10) { color: red; }
 yf:nth-child(
--10) { color: red }
-zf:nth-child(  - 10/**/n) { color: red }
+-10) { color: red; }
+zf:nth-child(  - 10/**/n) { color: red; }
 ag:nth-child(
--  10 n+       0) { color: red }
+-  10 n+       0) { color: red; }
 bg:nth-last-child(
--/**/10n/**/+1) { color: red }
-cg:nth-child(  -/**/10 n       +2) { color: red }
+-/**/10n/**/+1) { color: red; }
+cg:nth-child(  -/**/10 n       +2) { color: red; }
 dg:nth-last-child(/**/-
-10  n  +  10) { color: red }
-eg:nth-last-child(/**/- 10 n) { color: red }
-fg:nth-last-child(- 10n        -  0) { color: red }
-gg:nth-last-child(  -10n       - 1) { color: red }
-hg:nth-child(/**/- 10  n       - 2) { color: red }
+10  n  +  10) { color: red; }
+eg:nth-last-child(/**/- 10 n) { color: red; }
+fg:nth-last-child(- 10n        -  0) { color: red; }
+gg:nth-last-child(  -10n       - 1) { color: red; }
+hg:nth-child(/**/- 10  n       - 2) { color: red; }
 ig:nth-child(/**/-
-10     n -10) { color: red }
+10     n -10) { color: red; }
diff --git a/testsuite/css/parser/test-css-parser.c b/testsuite/css/parser/test-css-parser.c
index 6e9f3efc31..eb909583f7 100644
--- a/testsuite/css/parser/test-css-parser.c
+++ b/testsuite/css/parser/test-css-parser.c
@@ -142,16 +142,14 @@ parsing_error_cb (GtkCssProvider *provider,
                   const GError   *error,
                   GString        *errors)
 {
-  const GtkCssLocation *end_location;
-  char *basename;
+  char *section_string;
 
-  end_location = gtk_css_section_get_end_location (section);
+  section_string = gtk_css_section_to_string (section);
 
-  basename = g_file_get_basename (gtk_css_section_get_file (section));
   g_string_append_printf (errors,
-                          "%s:%zu: error: ",
-                          basename, end_location->lines + 1);
-  g_free (basename);
+                          "%s: error: ",
+                          section_string);
+  g_free (section_string);
 
   if (error->domain == GTK_CSS_PARSER_ERROR)
     append_error_value (errors, GTK_TYPE_CSS_PARSER_ERROR, error->code);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]