// Copyright 2020 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // These tests check that Torque-generated verifier functions crash the process // when encountering data that doesn't fit the Torque type definitions. #include "src/api/api-inl.h" #include "src/objects/descriptor-array.h" #include "src/objects/map-inl.h" #include "test/cctest/cctest.h" #include "torque-generated/class-verifiers.h" namespace v8 { namespace internal { // Defines a pair of tests with similar code. The goal is to test that a // specific action causes a failure, but that everything else in the test case // succeeds. The general pattern should be: // // TEST_PAIR(Something) { // do_setup_steps_that_always_succeed(); // if (should_fail) { // do_the_step_that_fails(); // } // do_teardown_steps_that_always_succeed(); // } // // A corresponding entry in cctest.status specifies that all Fail* tests in this // file must fail. #define TEST_PAIR … #ifdef VERIFY_HEAP TEST_PAIR(TestWrongTypeInNormalField) { … } TEST_PAIR(TestWrongStrongTypeInIndexedStructField) { … } TEST_PAIR(TestWrongWeakTypeInIndexedStructField) { … } TEST_PAIR(TestWrongOddball) { … } TEST_PAIR(TestWrongNumber) { … } #endif // VERIFY_HEAP #undef TEST_PAIR } // namespace internal } // namespace v8