From 9ec72567dbd2f5e0b38bb0532fe0aadefd486869 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Mon, 27 Nov 2023 10:22:58 +0900 Subject: [PATCH] fuzz: ignores the stack detail during stack overflow (#1849) Signed-off-by: Takeshi Yoneda --- internal/integration_test/fuzz/wazerolib/nodiff.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/integration_test/fuzz/wazerolib/nodiff.go b/internal/integration_test/fuzz/wazerolib/nodiff.go index 2ced68f88c..dcca0417a9 100644 --- a/internal/integration_test/fuzz/wazerolib/nodiff.go +++ b/internal/integration_test/fuzz/wazerolib/nodiff.go @@ -349,10 +349,13 @@ func ensureInvocationError(compilerErr, interpErr error) error { interpErrMsg = interpErrMsg[:strings.Index(interpErrMsg, "\n")] } - if strings.Contains(compilerErrMsg, "stack overflow") && strings.Contains(interpErrMsg, "unreachable") { + if compiledStackOverFlow := strings.Contains(compilerErrMsg, "stack overflow"); compiledStackOverFlow && strings.Contains(interpErrMsg, "unreachable") { // Compiler is more likely to reach stack overflow than interpreter, so we allow this case. This case is most likely // that interpreter reached the unreachable out of "fuel". return nil + } else if interpreterStackOverFlow := strings.Contains(interpErrMsg, "stack overflow"); compiledStackOverFlow && interpreterStackOverFlow { + // Both compiler and interpreter reached stack overflow, so we ignore diff in the content of the traces. + return nil } if compilerErrMsg != interpErrMsg {