@@ -1346,6 +1346,7 @@ func runQueryFuzzTestCases(t *testing.T, ps *promqlsmith.PromQLSmith, c1, c2 *e2
13461346 expr parser.Expr
13471347 query string
13481348 )
1349+ runForNonDeterCheck := 3
13491350 for i := 0 ; i < run ; i ++ {
13501351 for {
13511352 expr = ps .WalkInstantQuery ()
@@ -1354,6 +1355,30 @@ func runQueryFuzzTestCases(t *testing.T, ps *promqlsmith.PromQLSmith, c1, c2 *e2
13541355 break
13551356 }
13561357 }
1358+
1359+ nonDeterministicQuery := false
1360+ for i := 0 ; i < runForNonDeterCheck ; i ++ {
1361+ r1 , err1 := c2 .Query (query , queryTime )
1362+ r2 , err2 := c2 .Query (query , queryTime )
1363+
1364+ if err1 != nil || err2 != nil {
1365+ if ! cmp .Equal (err1 , err2 ) {
1366+ nonDeterministicQuery = true
1367+ break
1368+ }
1369+ }
1370+
1371+ if ! cmp .Equal (r1 , r2 , comparer ) {
1372+ nonDeterministicQuery = true
1373+ break
1374+ }
1375+ }
1376+
1377+ if nonDeterministicQuery {
1378+ t .Logf ("the instant query result is a non-deterministic for query (%s), skip" , query )
1379+ continue
1380+ }
1381+
13571382 res1 , err1 := c1 .Query (query , queryTime )
13581383 res2 , err2 := c2 .Query (query , queryTime )
13591384 cases = append (cases , & testCase {
@@ -1374,6 +1399,30 @@ func runQueryFuzzTestCases(t *testing.T, ps *promqlsmith.PromQLSmith, c1, c2 *e2
13741399 break
13751400 }
13761401 }
1402+
1403+ nonDeterministicQuery := false
1404+ for i := 0 ; i < runForNonDeterCheck ; i ++ {
1405+ r1 , err1 := c2 .QueryRange (query , start , end , step )
1406+ r2 , err2 := c2 .QueryRange (query , start , end , step )
1407+
1408+ if err1 != nil || err2 != nil {
1409+ if ! cmp .Equal (err1 , err2 ) {
1410+ nonDeterministicQuery = true
1411+ break
1412+ }
1413+ }
1414+
1415+ if ! cmp .Equal (r1 , r2 , comparer ) {
1416+ nonDeterministicQuery = true
1417+ break
1418+ }
1419+ }
1420+
1421+ if nonDeterministicQuery {
1422+ t .Logf ("the range query result is a non-deterministic for query (%s), skip" , query )
1423+ continue
1424+ }
1425+
13771426 res1 , err1 := c1 .QueryRange (query , start , end , step )
13781427 res2 , err2 := c2 .QueryRange (query , start , end , step )
13791428 cases = append (cases , & testCase {
0 commit comments