From 3242b4fa1b8be3e8c42234ece4571babadafceed Mon Sep 17 00:00:00 2001 From: Alona Enraght-Moony Date: Sun, 16 Apr 2023 23:16:52 +0000 Subject: [PATCH 1/2] rustdoc-json: Add tests for field ordering. --- tests/rustdoc-json/enums/field_order.rs | 40 +++++++++++++++++++++++ tests/rustdoc-json/structs/field_order.rs | 38 +++++++++++++++++++++ tests/rustdoc-json/unions/field_order.rs | 38 +++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 tests/rustdoc-json/enums/field_order.rs create mode 100644 tests/rustdoc-json/structs/field_order.rs create mode 100644 tests/rustdoc-json/unions/field_order.rs diff --git a/tests/rustdoc-json/enums/field_order.rs b/tests/rustdoc-json/enums/field_order.rs new file mode 100644 index 0000000000000..c7316f75bc683 --- /dev/null +++ b/tests/rustdoc-json/enums/field_order.rs @@ -0,0 +1,40 @@ +// Check that the order of fields is preserved. + +pub enum Whatever { + Foo { + // Important: random prefixes are used here to ensure that + // sorting fields by name would cause this test to fail. + ews_0: i32, + dik_1: i32, + hsk_2: i32, + djt_3: i32, + jnr_4: i32, + dfs_5: i32, + bja_6: i32, + lyc_7: i32, + yqd_8: i32, + vll_9: i32, + }, +} + +// @set 0 = '$.index[*][?(@.name == "ews_0")].id' +// @set 1 = '$.index[*][?(@.name == "dik_1")].id' +// @set 2 = '$.index[*][?(@.name == "hsk_2")].id' +// @set 3 = '$.index[*][?(@.name == "djt_3")].id' +// @set 4 = '$.index[*][?(@.name == "jnr_4")].id' +// @set 5 = '$.index[*][?(@.name == "dfs_5")].id' +// @set 6 = '$.index[*][?(@.name == "bja_6")].id' +// @set 7 = '$.index[*][?(@.name == "lyc_7")].id' +// @set 8 = '$.index[*][?(@.name == "yqd_8")].id' +// @set 9 = '$.index[*][?(@.name == "vll_9")].id' + +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[0]' $0 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[1]' $1 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[2]' $2 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[3]' $3 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[4]' $4 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[5]' $5 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[6]' $6 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[7]' $7 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[8]' $8 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.struct.fields[9]' $9 diff --git a/tests/rustdoc-json/structs/field_order.rs b/tests/rustdoc-json/structs/field_order.rs new file mode 100644 index 0000000000000..f36788ec9ad3a --- /dev/null +++ b/tests/rustdoc-json/structs/field_order.rs @@ -0,0 +1,38 @@ +// Check that the order of fields is preserved. + +pub struct Foo { + // Important: random prefixes are used here to ensure that + // sorting fields by name would cause this test to fail. + pub ews_0: i32, + pub dik_1: i32, + pub hsk_2: i32, + pub djt_3: i32, + pub jnr_4: i32, + pub dfs_5: i32, + pub bja_6: i32, + pub lyc_7: i32, + pub yqd_8: i32, + pub vll_9: i32, +} + +// @set 0 = '$.index[*][?(@.name == "ews_0")].id' +// @set 1 = '$.index[*][?(@.name == "dik_1")].id' +// @set 2 = '$.index[*][?(@.name == "hsk_2")].id' +// @set 3 = '$.index[*][?(@.name == "djt_3")].id' +// @set 4 = '$.index[*][?(@.name == "jnr_4")].id' +// @set 5 = '$.index[*][?(@.name == "dfs_5")].id' +// @set 6 = '$.index[*][?(@.name == "bja_6")].id' +// @set 7 = '$.index[*][?(@.name == "lyc_7")].id' +// @set 8 = '$.index[*][?(@.name == "yqd_8")].id' +// @set 9 = '$.index[*][?(@.name == "vll_9")].id' + +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[0]' $0 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[1]' $1 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[2]' $2 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[3]' $3 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[4]' $4 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[5]' $5 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[6]' $6 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[7]' $7 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[8]' $8 +// @is '$.index[*][?(@.name == "Foo")].inner.kind.plain.fields[9]' $9 diff --git a/tests/rustdoc-json/unions/field_order.rs b/tests/rustdoc-json/unions/field_order.rs new file mode 100644 index 0000000000000..d55d762e7b9cc --- /dev/null +++ b/tests/rustdoc-json/unions/field_order.rs @@ -0,0 +1,38 @@ +// Check that the order of fields is preserved. + +pub union Foo { + // Important: random prefixes are used here to ensure that + // sorting fields by name would cause this test to fail. + pub ews_0: i32, + pub dik_1: i32, + pub hsk_2: i32, + pub djt_3: i32, + pub jnr_4: i32, + pub dfs_5: i32, + pub bja_6: i32, + pub lyc_7: i32, + pub yqd_8: i32, + pub vll_9: i32, +} + +// @set 0 = '$.index[*][?(@.name == "ews_0")].id' +// @set 1 = '$.index[*][?(@.name == "dik_1")].id' +// @set 2 = '$.index[*][?(@.name == "hsk_2")].id' +// @set 3 = '$.index[*][?(@.name == "djt_3")].id' +// @set 4 = '$.index[*][?(@.name == "jnr_4")].id' +// @set 5 = '$.index[*][?(@.name == "dfs_5")].id' +// @set 6 = '$.index[*][?(@.name == "bja_6")].id' +// @set 7 = '$.index[*][?(@.name == "lyc_7")].id' +// @set 8 = '$.index[*][?(@.name == "yqd_8")].id' +// @set 9 = '$.index[*][?(@.name == "vll_9")].id' + +// @is '$.index[*][?(@.name == "Foo")].inner.fields[0]' $0 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[1]' $1 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[2]' $2 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[3]' $3 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[4]' $4 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[5]' $5 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[6]' $6 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[7]' $7 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[8]' $8 +// @is '$.index[*][?(@.name == "Foo")].inner.fields[9]' $9 From 006903ea61b72186c1596c7b3a9f5ad789ed918c Mon Sep 17 00:00:00 2001 From: Alona Enraght-Moony Date: Tue, 18 Apr 2023 15:15:50 +0000 Subject: [PATCH 2/2] rustdoc-json: Add tests for variant ordering. --- tests/rustdoc-json/enums/variant_order.rs | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/rustdoc-json/enums/variant_order.rs diff --git a/tests/rustdoc-json/enums/variant_order.rs b/tests/rustdoc-json/enums/variant_order.rs new file mode 100644 index 0000000000000..bec1f2241566a --- /dev/null +++ b/tests/rustdoc-json/enums/variant_order.rs @@ -0,0 +1,38 @@ +// Check that the order of variants is preserved. + +pub enum Foo { + // Important: random prefixes are used here to ensure that + // sorting fields by name would cause this test to fail. + Ews0, + Dik1, + Hsk2, + Djt3, + Jnr4, + Dfs5, + Bja6, + Lyc7, + Yqd8, + Vll9, +} + +// @set 0 = '$.index[*][?(@.name == "Ews0")].id' +// @set 1 = '$.index[*][?(@.name == "Dik1")].id' +// @set 2 = '$.index[*][?(@.name == "Hsk2")].id' +// @set 3 = '$.index[*][?(@.name == "Djt3")].id' +// @set 4 = '$.index[*][?(@.name == "Jnr4")].id' +// @set 5 = '$.index[*][?(@.name == "Dfs5")].id' +// @set 6 = '$.index[*][?(@.name == "Bja6")].id' +// @set 7 = '$.index[*][?(@.name == "Lyc7")].id' +// @set 8 = '$.index[*][?(@.name == "Yqd8")].id' +// @set 9 = '$.index[*][?(@.name == "Vll9")].id' + +// @is '$.index[*][?(@.name == "Foo")].inner.variants[0]' $0 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[1]' $1 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[2]' $2 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[3]' $3 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[4]' $4 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[5]' $5 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[6]' $6 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[7]' $7 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[8]' $8 +// @is '$.index[*][?(@.name == "Foo")].inner.variants[9]' $9