From c1cd1827d44045a65807e02afb891243e90be5ee Mon Sep 17 00:00:00 2001 From: fractalwrench Date: Mon, 25 Feb 2019 15:00:48 +0000 Subject: [PATCH] test: wait for session scenarios to send session before crashing --- .../mazerunner/scenarios/CXXStartSessionScenario.java | 11 ++++++++++- .../mazerunner/scenarios/CXXStopSessionScenario.java | 11 ++++++++++- features/native_session_tracking.feature | 4 ++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStartSessionScenario.java b/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStartSessionScenario.java index f02e265a53..b53e885303 100644 --- a/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStartSessionScenario.java +++ b/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStartSessionScenario.java @@ -1,6 +1,7 @@ package com.bugsnag.android.mazerunner.scenarios; import android.content.Context; +import android.os.Handler; import com.bugsnag.android.Bugsnag; import com.bugsnag.android.Configuration; @@ -14,6 +15,8 @@ public class CXXStartSessionScenario extends Scenario { System.loadLibrary("entrypoint"); } + private Handler handler = new Handler(); + public native int crash(int counter); public CXXStartSessionScenario(@NonNull Configuration config, @NonNull Context context) { @@ -28,7 +31,13 @@ public void run() { if (metadata == null || !metadata.equals("non-crashy")) { Bugsnag.getClient().startSession(); - crash(0); + + handler.postDelayed(new Runnable() { + @Override + public void run() { + crash(0); + } + }, 8000); } } } diff --git a/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStopSessionScenario.java b/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStopSessionScenario.java index 6563c5147e..f1089c74b3 100644 --- a/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStopSessionScenario.java +++ b/features/fixtures/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/CXXStopSessionScenario.java @@ -1,6 +1,7 @@ package com.bugsnag.android.mazerunner.scenarios; import android.content.Context; +import android.os.Handler; import com.bugsnag.android.Bugsnag; import com.bugsnag.android.Configuration; @@ -14,6 +15,8 @@ public class CXXStopSessionScenario extends Scenario { System.loadLibrary("entrypoint"); } + private Handler handler = new Handler(); + public native int crash(int counter); public CXXStopSessionScenario(@NonNull Configuration config, @NonNull Context context) { @@ -29,7 +32,13 @@ public void run() { if (metadata == null || !metadata.equals("non-crashy")) { Bugsnag.getClient().startSession(); Bugsnag.getClient().stopSession(); - crash(0); + + handler.postDelayed(new Runnable() { + @Override + public void run() { + crash(0); + } + }, 8000); } } } diff --git a/features/native_session_tracking.feature b/features/native_session_tracking.feature index 7330404f72..a3b0872f3b 100644 --- a/features/native_session_tracking.feature +++ b/features/native_session_tracking.feature @@ -2,6 +2,8 @@ Feature: NDK Session Tracking Scenario: Stopped session is not in payload of unhandled NDK error When I run "CXXStopSessionScenario" + And I wait a bit + And I wait a bit And I configure the app to run in the "non-crashy" state And I relaunch the app Then I should receive 2 requests @@ -11,6 +13,8 @@ Scenario: Stopped session is not in payload of unhandled NDK error Scenario: Started session is in payload of unhandled NDK error When I run "CXXStartSessionScenario" + And I wait a bit + And I wait a bit And I configure the app to run in the "non-crashy" state And I relaunch the app Then I should receive 2 requests