Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Unified Diff: src/trusted/validator/x86/nc_inst_bytes_tests.cc

Issue 625923004: Delete old x86 validator. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: rebase master Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/trusted/validator/x86/nacl_regs64.h ('k') | src/trusted/validator/x86/nc_remaining_memory_tests.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/validator/x86/nc_inst_bytes_tests.cc
diff --git a/src/trusted/validator/x86/nc_inst_bytes_tests.cc b/src/trusted/validator/x86/nc_inst_bytes_tests.cc
deleted file mode 100644
index 3799c18115839feacb2d4ae93ae2a2d7b3ed5045..0000000000000000000000000000000000000000
--- a/src/trusted/validator/x86/nc_inst_bytes_tests.cc
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2011 The Native Client Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/*
- * Unit tests for struct NCInstBytes in ncinstbuffer.{h,cc}.
- */
-
-#ifndef NACL_TRUSTED_BUT_NOT_TCB
-#error("This file is not meant for use in the TCB")
-#endif
-
-#include <stdio.h>
-
-#include "gtest/gtest.h"
-
-#include "native_client/src/trusted/validator/x86/ncinstbuffer.h"
-
-namespace {
-
-/* Constant defining maximum buffer size for memory. */
-const size_t kMaxBufferSize = 30;
-
-/* Test harness for class NCRemainingMemory. */
-class NCInstBytesTests : public ::testing::Test {
- protected:
- void SetUp();
- NCInstBytesTests();
-
- /* Data for testing. */
- NCInstBytes _bytes; /* Inst bytes (read). */
- NCRemainingMemory _memory; /* Memory being tested. */
- uint8_t _buffer[kMaxBufferSize]; /* Memory buffer to use. */
- const size_t _buffer_size; /* Actually size of test data. */
- static const char* kTestData; /* Data put into memory for testing. */
-
- /* Verify if the contents of kTestData matches the contents
- * of _bytes, up to _buffer_size; Remaining elements are zero.
- */
- void VerifyBytesMatchTestData();
-};
-
-const char* NCInstBytesTests::kTestData = "Test data";
-
-NCInstBytesTests::NCInstBytesTests()
- : _buffer_size(strlen(kTestData)) {
- /* Fill memory buffer with bad test data, so that we know if bad accesses
- * occur past the end of the buffer.
- */
- for (size_t i = 0; i < kMaxBufferSize; ++i) {
- _buffer[i] = 'X';
- }
- /* Now fill in the good test data. */
- for (size_t i = 0; i < _buffer_size; ++i) {
- _buffer[i] = (uint8_t) kTestData[i];
- }
-}
-
-void NCInstBytesTests::VerifyBytesMatchTestData() {
- /* First show that while there is real data in the memory,
- * it has been copied to the bytes buffer.
- */
- size_t match_limit =
- (_bytes.length <= _buffer_size) ? _bytes.length : _buffer_size;
- for (size_t i = 0; i < match_limit; ++i) {
- EXPECT_EQ(_bytes.byte[i], kTestData[i])
- << "value verification of byte " << i;
- }
- /* Now show that any remaining bytes (after the memory
- * has been read) are 0.
- */
- for (size_t i = match_limit; i < _bytes.length; ++i) {
- EXPECT_EQ(0, _bytes.byte[i])
- << "zero verification of byte " << i;
- }
-}
-
-void NCInstBytesTests::SetUp() {
- NCRemainingMemoryInit(_buffer, _buffer_size, &_memory);
- NCInstBytesInitMemory(&_bytes, &_memory);
- /* Be sure to verify that we can run the tests, which require
- * a couple of extra slots for overflow.
- */
- ASSERT_LT(_buffer_size + 1, (size_t) MAX_INST_LENGTH)
- << "Set up failed due to kTestData being too long.";
-}
-
-/* Test function NCInstBytesPeek, and see if it properly sees the data in
- * the instruction buffer.
- */
-TEST_F(NCInstBytesTests, PeekGetsData) {
- /* First verify that we get text as defined in the test data. */
- for (size_t i = 0; i < _buffer_size; ++i) {
- EXPECT_EQ(NCInstBytesPeek(&_bytes, i), (uint8_t) kTestData[i])
- << "peeking " << i << " bytes ahead.";
- }
- /* Now verify that if we look past the end of the data, we
- * get 0.
- */
- EXPECT_EQ(0, NCInstBytesPeek(&_bytes, _buffer_size))
- << "peeking one byte past end of buffer.";
- EXPECT_EQ(0, NCInstBytesPeek(&_bytes, _buffer_size + 100))
- << "peeking 100 bytes past end of buffer.";
- EXPECT_EQ(0, _bytes.length);
- VerifyBytesMatchTestData();
-}
-
-/* Test function NCInstBytesRead, and see if it properly read
- * data from the memory buffer.
- */
-TEST_F(NCInstBytesTests, ReadGetsData) {
- /* First verify that we get text as defined in the test data. */
- for (size_t i = 0; i < _buffer_size; ++i) {
- EXPECT_EQ(NCInstBytesRead(&_bytes), (uint8_t) kTestData[i])
- << "after reading " << i << " characters";
- VerifyBytesMatchTestData();
- }
- EXPECT_EQ(_buffer_size, _bytes.length);
- VerifyBytesMatchTestData();
- /* Now verify that zero is returned for any additional reads. */
- for (size_t i = _bytes.length; i < MAX_INST_LENGTH; ++i) {
- EXPECT_EQ(0, NCInstBytesRead(&_bytes))
- << "after reading all characters";
- }
- VerifyBytesMatchTestData();
- /* Verify that we can apply a read, even if buffer overflow occurs,
- * and the only effect is that the buffer length is not increased.
- */
- EXPECT_EQ(MAX_INST_LENGTH, _bytes.length);
- EXPECT_EQ(0, NCInstBytesRead(&_bytes));
- EXPECT_EQ(MAX_INST_LENGTH, _bytes.length);
-}
-
-/* Test function NCInstBytesReadBytes, and see if it properly reads
- * data from the memory buffer.
- */
-TEST_F(NCInstBytesTests, ReadBytesGetsData) {
- /* First verify that we get text as defined in the test data. */
- size_t chars_read = 0;
- size_t stride = 4;
- VerifyBytesMatchTestData();
- while (chars_read < MAX_INST_LENGTH) {
- if ((chars_read + stride) > MAX_INST_LENGTH) {
- stride = MAX_INST_LENGTH - chars_read;
- }
- NCInstBytesReadBytes(stride, &_bytes);
- chars_read += stride;
- VerifyBytesMatchTestData();
- }
- /* Verify that we can apply additional reads without overflowing
- * the buffer.
- */
- NCInstBytesReadBytes(2, &_bytes);
- EXPECT_EQ(MAX_INST_LENGTH, _bytes.length) << "Buffer overflow fix failed.";
-}
-
-/* Test function NCInstBytesReset, and see if we back up to
- * the beginning of the instruction.
- */
-TEST_F(NCInstBytesTests, Reset) {
- /* First read some bytes into the bytes buffer. */
- NCInstBytesReadBytes(5, &_bytes);
- VerifyBytesMatchTestData();
- /* Now reset and see if we moved back. */
- NCInstBytesReset(&_bytes);
- EXPECT_EQ(0, _bytes.length) << "Reset didn't fix buffer length.";
- VerifyBytesMatchTestData();
- EXPECT_EQ(0, _memory.read_length) << "Reset didn't fix memory length.";
- EXPECT_EQ(0, _memory.overflow_count) << "Reset didn't fix memory overflow.";
- EXPECT_EQ((void*) _buffer, (void*) _memory.cur_pos)
- << "Reset did not reset memory.";
-}
-
-}; // anonymous namespace
-
-int main(int argc, char *argv[]) {
- testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
-}
« no previous file with comments | « src/trusted/validator/x86/nacl_regs64.h ('k') | src/trusted/validator/x86/nc_remaining_memory_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698