Flutter Engine
The Flutter Engine
third_party
dart-lang
sdk
runtime
vm
longjump_test.cc
Go to the documentation of this file.
1
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2
// for details. All rights reserved. Use of this source code is governed by a
3
// BSD-style license that can be found in the LICENSE file.
4
5
#include "
vm/longjump.h
"
6
#include "
vm/thread.h
"
7
#include "
vm/unit_test.h
"
8
9
namespace
dart
{
10
11
static
void
LongJumpHelper
(
LongJumpScope
* jump) {
12
const
Error
&
error
=
Error::Handle
(
13
LanguageError::New(
String::Handle
(
String::New
(
"LongJumpHelper"
))));
14
jump->
Jump
(1,
error
);
15
UNREACHABLE
();
16
}
17
18
ISOLATE_UNIT_TEST_CASE
(LongJump) {
19
LongJumpScope
*
base
=
Thread::Current
()->
long_jump_base
();
20
{
21
LongJumpScope
jump;
22
if
(setjmp(*jump.
Set
()) == 0) {
23
LongJumpHelper
(&jump);
24
UNREACHABLE
();
25
}
else
{
26
ASSERT
(
Error::Handle
(thread->StealStickyError()).IsLanguageError());
27
}
28
}
29
ASSERT
(
base
==
Thread::Current
()->long_jump_base());
30
}
31
32
}
// namespace dart
UNREACHABLE
#define UNREACHABLE()
Definition:
assert.h:248
dart::Error
Definition:
object.h:8049
dart::LongJumpScope
Definition:
longjump.h:17
dart::LongJumpScope::Jump
DART_NORETURN void Jump(int value, const Error &error)
Definition:
longjump.cc:22
dart::LongJumpScope::Set
jmp_buf * Set()
Definition:
longjump.cc:16
dart::Object::Handle
static Object & Handle()
Definition:
object.h:407
dart::String::New
static StringPtr New(const char *cstr, Heap::Space space=Heap::kNew)
Definition:
object.cc:23698
dart::ThreadState::long_jump_base
LongJumpScope * long_jump_base() const
Definition:
thread_state.h:47
dart::Thread::Current
static Thread * Current()
Definition:
thread.h:362
ASSERT
#define ASSERT(E)
Definition:
entrypoints_verification_test.cc:25
error
const uint8_t uint32_t uint32_t GError ** error
Definition:
fl_pixel_buffer_texture_test.cc:40
longjump.h
base
Definition:
ax_tree_id_registry.h:17
dart
Definition:
dart_vm.cc:33
dart::LongJumpHelper
static void LongJumpHelper(LongJumpScope *jump)
Definition:
longjump_test.cc:11
dart::ISOLATE_UNIT_TEST_CASE
ISOLATE_UNIT_TEST_CASE(StackAllocatedDestruction)
Definition:
allocation_test.cc:76
thread.h
unit_test.h
Generated on Sun Jun 23 2024 21:55:43 for Flutter Engine by
1.9.4