LCOV - code coverage report
Current view: top level - test/cctest/wasm - test-run-wasm-sign-extension.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 46 46 100.0 %
Date: 2019-02-19 Functions: 22 22 100.0 %

          Line data    Source code
       1             : // Copyright 2017 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #include "test/cctest/cctest.h"
       6             : #include "test/cctest/wasm/wasm-run-utils.h"
       7             : #include "test/common/wasm/wasm-macro-gen.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : namespace wasm {
      12             : 
      13             : // TODO(gdeepti): Enable tests to run in the interpreter.
      14       25899 : WASM_EXEC_TEST(I32SExtendI8) {
      15             :   EXPERIMENTAL_FLAG_SCOPE(se);
      16          24 :   WasmRunner<int32_t, int32_t> r(execution_tier);
      17          12 :   BUILD(r, WASM_I32_SIGN_EXT_I8(WASM_GET_LOCAL(0)));
      18          12 :   CHECK_EQ(0, r.Call(0));
      19          12 :   CHECK_EQ(1, r.Call(1));
      20          12 :   CHECK_EQ(-1, r.Call(-1));
      21          12 :   CHECK_EQ(0x7a, r.Call(0x7a));
      22          12 :   CHECK_EQ(-0x80, r.Call(0x80));
      23          12 : }
      24             : 
      25       25899 : WASM_EXEC_TEST(I32SExtendI16) {
      26             :   EXPERIMENTAL_FLAG_SCOPE(se);
      27          24 :   WasmRunner<int32_t, int32_t> r(execution_tier);
      28          12 :   BUILD(r, WASM_I32_SIGN_EXT_I16(WASM_GET_LOCAL(0)));
      29          12 :   CHECK_EQ(0, r.Call(0));
      30          12 :   CHECK_EQ(1, r.Call(1));
      31          12 :   CHECK_EQ(-1, r.Call(-1));
      32          12 :   CHECK_EQ(0x7afa, r.Call(0x7afa));
      33          12 :   CHECK_EQ(-0x8000, r.Call(0x8000));
      34          12 : }
      35             : 
      36       25899 : WASM_EXEC_TEST(I64SExtendI8) {
      37             :   EXPERIMENTAL_FLAG_SCOPE(se);
      38          24 :   WasmRunner<int64_t, int64_t> r(execution_tier);
      39          12 :   BUILD(r, WASM_I64_SIGN_EXT_I8(WASM_GET_LOCAL(0)));
      40          12 :   CHECK_EQ(0, r.Call(0));
      41          12 :   CHECK_EQ(1, r.Call(1));
      42          12 :   CHECK_EQ(-1, r.Call(-1));
      43          12 :   CHECK_EQ(0x7a, r.Call(0x7a));
      44          12 :   CHECK_EQ(-0x80, r.Call(0x80));
      45          12 : }
      46             : 
      47       25899 : WASM_EXEC_TEST(I64SExtendI16) {
      48             :   EXPERIMENTAL_FLAG_SCOPE(se);
      49          24 :   WasmRunner<int64_t, int64_t> r(execution_tier);
      50          12 :   BUILD(r, WASM_I64_SIGN_EXT_I16(WASM_GET_LOCAL(0)));
      51          12 :   CHECK_EQ(0, r.Call(0));
      52          12 :   CHECK_EQ(1, r.Call(1));
      53          12 :   CHECK_EQ(-1, r.Call(-1));
      54          12 :   CHECK_EQ(0x7afa, r.Call(0x7afa));
      55          12 :   CHECK_EQ(-0x8000, r.Call(0x8000));
      56          12 : }
      57             : 
      58       25899 : WASM_EXEC_TEST(I64SExtendI32) {
      59             :   EXPERIMENTAL_FLAG_SCOPE(se);
      60          24 :   WasmRunner<int64_t, int64_t> r(execution_tier);
      61          12 :   BUILD(r, WASM_I64_SIGN_EXT_I32(WASM_GET_LOCAL(0)));
      62          12 :   CHECK_EQ(0, r.Call(0));
      63          12 :   CHECK_EQ(1, r.Call(1));
      64          12 :   CHECK_EQ(-1, r.Call(-1));
      65          12 :   CHECK_EQ(0x7fffffff, r.Call(0x7fffffff));
      66          12 :   CHECK_EQ(-0x80000000LL, r.Call(0x80000000));
      67          12 : }
      68             : 
      69             : }  // namespace wasm
      70             : }  // namespace internal
      71       77625 : }  // namespace v8

Generated by: LCOV version 1.10