Skip to content

Commit d56fcee

Browse files
committed
treewide: Add no_retry test tag
We tag all proptests with this tag, because we don't want to mark the build as passed if we retry and don't generate the same failing test case. Change-Id: If79652402e6a144ed2cea9d46e4462fa8798b232 Reviewed-on: https://gerrit.readyset.name/c/readyset/+/9562 Reviewed-by: Johnathan Davis <[email protected]> Tested-by: Buildkite CI
1 parent 70f2e91 commit d56fcee

File tree

43 files changed

+150
-14
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+150
-14
lines changed

.config/nextest.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,7 @@ test-group = 'serial-postgres'
2525
[[profile.default.overrides]]
2626
filter = 'test(/:serial:/) and test(/:mysql\d*_upstream:/)'
2727
test-group = 'serial-mysql'
28+
29+
[[profile.default.overrides]]
30+
filter = 'test(/:proptest:/)'
31+
retries = 0

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

data-generator/tests/mysql.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ async fn mysql_connection() -> mysql_async::Conn {
3333
.unwrap()
3434
}
3535

36-
#[tags(serial, mysql_upstream)]
36+
#[tags(serial, no_retry, mysql_upstream)]
3737
#[proptest]
3838
#[slow]
3939
fn value_of_type_always_valid(
@@ -61,7 +61,7 @@ fn value_of_type_always_valid(
6161
.unwrap();
6262
}
6363

64-
#[tags(serial, mysql_upstream)]
64+
#[tags(serial, no_retry, mysql_upstream)]
6565
#[proptest]
6666
#[slow]
6767
fn unique_value_of_type_always_valid(
@@ -92,7 +92,7 @@ fn unique_value_of_type_always_valid(
9292
.unwrap();
9393
}
9494

95-
#[tags(serial, mysql_upstream)]
95+
#[tags(serial, no_retry, mysql_upstream)]
9696
#[proptest]
9797
#[slow]
9898
fn random_value_of_type_always_valid(

dataflow-expression/src/eval/builtins.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1481,6 +1481,7 @@ mod tests {
14811481
arbitrary_timestamp_naive_date_time, arbitrary_timestamp_naive_date_time_for_timezone,
14821482
};
14831483
use test_strategy::proptest;
1484+
use test_utils::tags;
14841485

14851486
use super::*;
14861487
use crate::eval::tests::{eval_expr, try_eval_expr};
@@ -2064,6 +2065,7 @@ mod tests {
20642065
// NOTE(Fran): We have to be careful when testing timezones, as the time difference
20652066
// between two timezones might differ depending on the date (due to daylight savings
20662067
// or by historical changes).
2068+
#[tags(no_retry)]
20672069
#[proptest]
20682070
fn convert_tz(
20692071
#[strategy(arbitrary_timestamp_naive_date_time_for_timezone(Atlantic::Cape_Verde))]
@@ -2076,24 +2078,26 @@ mod tests {
20762078
.unwrap()
20772079
.with_timezone(&target_tz)
20782080
.naive_local();
2079-
assert_eq!(
2081+
self::assert_eq!(
20802082
super::convert_tz(&datetime, &src_tz.to_string(), &target_tz.to_string()).unwrap(),
20812083
expected
20822084
);
20832085
super::convert_tz(&datetime, "invalid timezone", &target_tz.to_string()).unwrap_err();
20842086
super::convert_tz(&datetime, &src_tz.to_string(), "invalid timezone").unwrap_err();
20852087
}
20862088

2089+
#[tags(no_retry)]
20872090
#[proptest]
20882091
fn day_of_week(#[strategy(arbitrary_timestamp_naive_date_time())] datetime: NaiveDateTime) {
20892092
let expected = datetime.weekday().number_from_sunday() as u8;
2090-
assert_eq!(super::day_of_week(&datetime.date()), expected);
2093+
self::assert_eq!(super::day_of_week(&datetime.date()), expected);
20912094
}
20922095

2096+
#[tags(no_retry)]
20932097
#[proptest]
20942098
fn month(#[strategy(arbitrary_timestamp_naive_date_time())] datetime: NaiveDateTime) {
20952099
let expected = datetime.month() as u8;
2096-
assert_eq!(super::month(&datetime.date()), expected);
2100+
self::assert_eq!(super::month(&datetime.date()), expected);
20972101
}
20982102

20992103
#[test]

dataflow-expression/src/eval/json.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,8 @@ mod tests {
727727
use itertools::Itertools;
728728
use proptest::prelude::*;
729729

730+
use test_utils::tags;
731+
730732
use super::*;
731733

732734
mod json_quote {
@@ -735,6 +737,7 @@ mod tests {
735737

736738
use super::*;
737739

740+
#[tags(no_retry)]
738741
#[proptest]
739742
fn inputs(string: String) {
740743
let quoted = json_quote(&string);
@@ -747,6 +750,7 @@ mod tests {
747750
assert_eq!(json_quote("wo\u{1f}rl\\d"), r#""wo\u001frl\\d""#);
748751
}
749752

753+
#[tags(no_retry)]
750754
#[proptest]
751755
fn non_escaped(s: String) {
752756
let contains_escapable = s
@@ -755,7 +759,7 @@ mod tests {
755759

756760
prop_assume!(!contains_escapable);
757761

758-
assert_eq!(json_quote(&s), format!("\"{s}\""));
762+
self::assert_eq!(json_quote(&s), format!("\"{s}\""));
759763
}
760764

761765
#[test]

dataflow-expression/src/like.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ impl From<String> for LikePattern {
119119
#[cfg(test)]
120120
mod tests {
121121
use test_strategy::proptest;
122+
use test_utils::tags;
122123

123124
use super::*;
124125

@@ -165,6 +166,7 @@ mod tests {
165166
assert!(LikePattern::new(r"\\", CaseSensitive).matches(r"\"));
166167
}
167168

169+
#[tags(no_retry)]
168170
#[proptest]
169171
fn pattern_matches_itself(pat: String) {
170172
lazy_static! {

dataflow-expression/src/utils.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,16 @@ mod tests {
219219

220220
mod insert_bidirectional {
221221
use pretty_assertions::assert_eq;
222+
use test_utils::tags;
222223

223224
use super::*;
224225

226+
#[tags(no_retry)]
225227
#[proptest]
226228
fn inputs(mut vec: Vec<u32>, index: isize, element: u32, insert_after: bool) {
227229
let prev_len = vec.len();
228230
insert_bidirectional(&mut vec, index, element, insert_after);
229-
assert_eq!(vec.len(), prev_len + 1);
231+
self::assert_eq!(vec.len(), prev_len + 1);
230232
}
231233

232234
#[track_caller]

dataflow-state/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ rust_decimal = { workspace = true, features = [
5151
"db-tokio-postgres",
5252
"serde-str",
5353
] }
54+
test-utils = { path = "../test-utils" }
5455

5556
[[bench]]
5657
name = "persistent_state"

dataflow-state/src/key.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ impl RangeKey {
313313
mod tests {
314314
use readyset_data::Collation;
315315
use test_strategy::proptest;
316+
use test_utils::tags;
316317

317318
use super::*;
318319

@@ -369,6 +370,7 @@ mod tests {
369370
);
370371
}
371372

373+
#[tags(no_retry)]
372374
#[proptest]
373375
fn single_point_key_serialize_injective(v1: DfValue, v2: DfValue) {
374376
let k1 = PointKey::Single(v1);

dataflow-state/src/persistent_state/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2504,6 +2504,7 @@ mod tests {
25042504
use replication_offset::postgres::PostgresPosition;
25052505
use rust_decimal::Decimal;
25062506
use test_strategy::proptest;
2507+
use test_utils::tags;
25072508

25082509
use super::*;
25092510

@@ -2539,6 +2540,7 @@ mod tests {
25392540
state
25402541
}
25412542

2543+
#[tags(no_retry)]
25422544
#[proptest]
25432545
fn point_key_serialize_round_trip(key: PointKey) {
25442546
let serialized = PersistentState::serialize_prefix(&key);
@@ -2547,7 +2549,7 @@ mod tests {
25472549
where
25482550
D: DeserializeOwned + Debug + PartialEq,
25492551
{
2550-
assert_eq!(deserialize_key::<D>(serialized).1, v);
2552+
self::assert_eq!(deserialize_key::<D>(serialized).1, v);
25512553
}
25522554

25532555
match key {

merging-interval-tree/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ description = "An efficient non-overlapping interval tree that merges overlappin
99
[dependencies]
1010

1111
[dev-dependencies]
12-
test-strategy = { workspace = true }
1312
proptest = { workspace = true }
13+
test-strategy = { workspace = true }
14+
test-utils = { path = "../test-utils" }
1415

1516
[lints]
1617
workspace = true

merging-interval-tree/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,7 @@ mod tests {
10021002
use std::ops::{Bound, RangeBounds};
10031003

10041004
use test_strategy::proptest;
1005+
use test_utils::tags;
10051006

10061007
use crate::{Endpoint, IntervalTreeSet};
10071008

@@ -1457,6 +1458,7 @@ mod tests {
14571458
.is_none());
14581459
}
14591460

1461+
#[tags(no_retry)]
14601462
#[proptest]
14611463
fn insert_interval_is_in_tree(intervals: Vec<(Bound<u16>, Bound<u16>)>) {
14621464
let mut tree = IntervalTreeSet::default();
@@ -1491,6 +1493,7 @@ mod tests {
14911493
}
14921494
}
14931495

1496+
#[tags(no_retry)]
14941497
#[proptest]
14951498
fn remove_interval_not_in_tree(intervals: Vec<(Bound<u16>, Bound<u16>)>) {
14961499
let mut tree = IntervalTreeSet::<u16>::default();

mysql-time/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ mysql_common = { workspace = true }
1616

1717
[dev-dependencies]
1818
test-strategy = { workspace = true }
19+
test-utils = { path = "../test-utils" }
1920

2021
[lints]
2122
workspace = true

mysql-time/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -676,6 +676,7 @@ mod tests {
676676
arbitrary_duration, arbitrary_naive_date_time, arbitrary_naive_time,
677677
};
678678
use test_strategy::proptest;
679+
use test_utils::tags;
679680

680681
use super::*;
681682

@@ -704,6 +705,7 @@ mod tests {
704705
};
705706
}
706707

708+
#[tags(no_retry)]
707709
#[proptest]
708710
fn new(#[strategy(arbitrary_duration())] duration: Duration) {
709711
let mysql_time = MySqlTime::new(duration);
@@ -725,6 +727,7 @@ mod tests {
725727
assert_valid!(mysql_time, -MAX_MYSQL_TIME_SECONDS);
726728
}
727729

730+
#[tags(no_retry)]
728731
#[proptest]
729732
fn from_microseconds(#[strategy(arbitrary_duration())] duration: Duration) {
730733
let mysql_time =
@@ -785,6 +788,7 @@ mod tests {
785788
assert!(mysql_time1 < mysql_time3)
786789
}
787790

791+
#[tags(no_retry)]
788792
#[proptest]
789793
fn sub(
790794
#[strategy(arbitrary_duration())] duration1: Duration,
@@ -796,6 +800,7 @@ mod tests {
796800
assert_valid!(mysql_time1 - mysql_time2, total_secs);
797801
}
798802

803+
#[tags(no_retry)]
799804
#[proptest]
800805
fn add(
801806
#[strategy(arbitrary_duration())] duration1: Duration,
@@ -807,6 +812,7 @@ mod tests {
807812
assert_valid!(mysql_time1 + mysql_time2, total_secs);
808813
}
809814

815+
#[tags(no_retry)]
810816
#[proptest]
811817
fn add_naive_date_time(
812818
#[strategy(arbitrary_duration())] duration: Duration,
@@ -820,6 +826,7 @@ mod tests {
820826
mod from_str {
821827
use super::*;
822828

829+
#[tags(no_retry)]
823830
#[proptest]
824831
fn from_str(#[strategy(arbitrary_duration())] duration: Duration) {
825832
let duration_str = duration_to_str(duration);
@@ -828,6 +835,7 @@ mod tests {
828835
assert_valid!(mysql_time, total_secs);
829836
}
830837

838+
#[tags(no_retry)]
831839
#[proptest]
832840
fn from_str_display(#[strategy(arbitrary_duration())] duration: Duration) {
833841
let mysql_time = MySqlTime::new(duration);
@@ -1259,6 +1267,7 @@ mod tests {
12591267
}
12601268
}
12611269

1270+
#[tags(no_retry)]
12621271
#[proptest]
12631272
fn naive_time_from_into_round_trip(#[strategy(arbitrary_naive_time())] naive_time: NaiveTime) {
12641273
let mt = MySqlTime::from(naive_time);

nom-sql/src/common.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,7 @@ mod tests {
712712
use super::*;
713713

714714
use readyset_sql::DialectDisplay;
715+
use test_utils::tags;
715716

716717
use crate::to_nom_result;
717718

nom-sql/src/expression.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,7 @@ pub(crate) fn expression(
860860
mod tests {
861861
use readyset_sql::DialectDisplay;
862862
use test_strategy::proptest;
863+
use test_utils::tags;
863864

864865
use super::*;
865866
use crate::to_nom_result;
@@ -892,6 +893,7 @@ mod tests {
892893
)
893894
}
894895

896+
#[tags(no_retry)]
895897
#[proptest]
896898
fn arbitrary_expr_doesnt_stack_overflow(_expr: Expr) {}
897899

0 commit comments

Comments
 (0)