@@ -2,13 +2,19 @@ import 'package:sentry/src/utils/stack_trace_utils.dart';
2
2
import 'package:test/test.dart' ;
3
3
4
4
void main () {
5
+ late Fixture fixture;
6
+
7
+ setUp (() {
8
+ fixture = Fixture ();
9
+ });
10
+
5
11
final dartStackTrace = '''
6
12
randomPrefix
7
13
#0 main (file:///Users/denis/Repos/other/dart-stacktrace/main.dart:2:20)
8
14
#1 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:296:19)
9
15
#2 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)
10
16
randomSuffix
11
- ''' ;
17
+ ''' ;
12
18
13
19
final flutterStackTrace = '''
14
20
randomPrefix
@@ -22,53 +28,53 @@ flutter: #0 MainScaffold.build.<anonymous closure> (package:sentry_flutter_
22
28
#7 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:469:20)
23
29
#8 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:445:22)
24
30
#9 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:331:11)
25
- #10 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:400:7)<…>
31
+ #10 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:400:7)
26
32
randomSuffix
27
- ''' ;
33
+ ''' ;
28
34
29
35
final flutterObfuscatedStackTrace = '''
36
+ randomPrefix
30
37
#00 abs 00000075266c2fbf virt 0000000000697fbf _kDartIsolateSnapshotInstructions+0x37e63f
31
38
#1 abs 000000752685211f virt 000000000082711f _kDartIsolateSnapshotInstructions+0x50d79f
32
39
#2 abs 0000007526851cb3 virt 0000000000826cb3 _kDartIsolateSnapshotInstructions+0x50d333
33
40
#3 abs 0000007526851c63 virt 0000000000826c63 _kDartIsolateSnapshotInstructions+0x50d2e3
34
41
#4 abs 0000007526851bf3 virt 0000000000826bf3 _kDartIsolateSnapshotInstructions+0x50d273
35
- ''' ;
36
-
37
- test ('dart stack trace detected' , () {
38
- expect (dartStackTrace.isStackTrace (), isTrue);
39
- });
40
-
41
- test ('flutter stack trace detected' , () {
42
- expect (flutterStackTrace.isStackTrace (), isTrue);
43
- });
42
+ randomSuffix
43
+ ''' ;
44
44
45
- test ('flutter obfuscated stack trace detected' , () {
46
- expect (flutterObfuscatedStackTrace.isStackTrace (), isTrue);
47
- });
45
+ final stackTraceWithAsyncSuspension = '''
46
+ randomPrefix
47
+ #0 baz (file:///pathto/test.dart:50:3)
48
+ <asynchronous suspension>
49
+ #1 bar (file:///pathto/test.dart:46:9)
50
+ randomSuffix
51
+ ''' ;
48
52
49
- test ('stack trace not detected with frame number only' , () {
50
- expect ('#0' .isStackTrace (), isFalse);
51
- });
53
+ final cleanedUp = 'randomPrefix\n randomSuffix' ;
52
54
53
- test ('stack trace not detected with file name and line number only' , () {
54
- expect ('foo.dart:9000:1)' .isStackTrace (), isFalse);
55
+ test ('removes dart stack trace' , () {
56
+ final sut = fixture.getSut (dartStackTrace);
57
+ expect (sut.removeStackStraceLines (), cleanedUp);
55
58
});
56
59
57
- test ('stack trace not detected abs only' , () {
58
- expect (' abs ' .isStackTrace (), isFalse);
60
+ test ('removes flutter stack trace' , () {
61
+ final sut = fixture.getSut (flutterStackTrace);
62
+ expect (sut.removeStackStraceLines (), cleanedUp);
59
63
});
60
64
61
- test ('stack trace not detected virt only' , () {
62
- expect (' virt ' .isStackTrace (), isFalse);
65
+ test ('removes flutter obfuscated stack trace' , () {
66
+ final sut = fixture.getSut (flutterObfuscatedStackTrace);
67
+ expect (sut.removeStackStraceLines (), cleanedUp);
63
68
});
64
69
65
- test ('stack trace not detected abs & virt only ' , () {
66
- expect (
67
- ' abs 00000075266c2fbf virt 0000000000697fbf' . isStackTrace (), isFalse );
70
+ test ('removes stack trace with asynchronous suspension ' , () {
71
+ final sut = fixture. getSut (stackTraceWithAsyncSuspension);
72
+ expect (sut. removeStackStraceLines (), cleanedUp );
68
73
});
74
+ }
69
75
70
- test ( 'stack trace not detected hex suffix only' , () {
71
- expect (
72
- '_kDartIsolateSnapshotInstructions+0x50d273' . isStackTrace (), isFalse );
73
- });
76
+ class Fixture {
77
+ StackTraceUtils getSut ( String input) {
78
+ return StackTraceUtils (input );
79
+ }
74
80
}
0 commit comments