1// Copyright 2016 The Fuchsia 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 <trace-engine/fields.h> 6 7#include <unittest/unittest.h> 8 9namespace { 10 11static bool field_get_set_test(void) { 12 BEGIN_TEST; 13 14 uint64_t value(0); 15 16 trace::Field<0, 0>::Set(value, uint8_t(1)); 17 trace::Field<1, 1>::Set(value, uint8_t(1)); 18 trace::Field<2, 2>::Set(value, uint8_t(1)); 19 trace::Field<3, 3>::Set(value, uint8_t(1)); 20 trace::Field<4, 4>::Set(value, uint8_t(1)); 21 trace::Field<5, 5>::Set(value, uint8_t(1)); 22 trace::Field<6, 6>::Set(value, uint8_t(1)); 23 trace::Field<7, 7>::Set(value, uint8_t(1)); 24 25 EXPECT_EQ(uint8_t(-1), value); 26 value = 0; 27 trace::Field<0, 2>::Set(value, uint8_t(7)); 28 EXPECT_EQ(uint8_t(7), value); 29 trace::Field<0, 2>::Set(value, uint8_t(0)); 30 EXPECT_EQ(uint8_t(0), value); 31 32 END_TEST; 33} 34 35} // namespace 36 37BEGIN_TEST_CASE(types) 38RUN_TEST(field_get_set_test) 39END_TEST_CASE(types) 40