| 1 | // Copyright (c) 2012, 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/flags.h" |
| 6 | #include "platform/assert.h" |
| 7 | #include "vm/heap/heap.h" |
| 8 | #include "vm/unit_test.h" |
| 9 | |
| 10 | namespace dart { |
| 11 | |
| 12 | DEFINE_FLAG(bool, basic_flag, true, "Testing of a basic boolean flag." ); |
| 13 | |
| 14 | DECLARE_FLAG(bool, print_flags); |
| 15 | |
| 16 | VM_UNIT_TEST_CASE(BasicFlags) { |
| 17 | EXPECT_EQ(true, FLAG_basic_flag); |
| 18 | EXPECT_EQ(false, FLAG_verbose_gc); |
| 19 | EXPECT_EQ(false, FLAG_print_flags); |
| 20 | } |
| 21 | |
| 22 | DEFINE_FLAG(bool, parse_flag_bool_test, true, "Flags::Parse (bool) testing" ); |
| 23 | DEFINE_FLAG(charp, string_opt_test, NULL, "Testing: string option." ); |
| 24 | DEFINE_FLAG(charp, entrypoint_test, "main" , "Testing: entrypoint" ); |
| 25 | DEFINE_FLAG(int, counter, 100, "Testing: int flag" ); |
| 26 | |
| 27 | VM_UNIT_TEST_CASE(ParseFlags) { |
| 28 | EXPECT_EQ(true, FLAG_parse_flag_bool_test); |
| 29 | Flags::Parse("no_parse_flag_bool_test" ); |
| 30 | EXPECT_EQ(false, FLAG_parse_flag_bool_test); |
| 31 | Flags::Parse("parse_flag_bool_test" ); |
| 32 | EXPECT_EQ(true, FLAG_parse_flag_bool_test); |
| 33 | Flags::Parse("parse_flag_bool_test=false" ); |
| 34 | EXPECT_EQ(false, FLAG_parse_flag_bool_test); |
| 35 | Flags::Parse("parse_flag_bool_test=true" ); |
| 36 | EXPECT_EQ(true, FLAG_parse_flag_bool_test); |
| 37 | |
| 38 | EXPECT_EQ(true, FLAG_string_opt_test == NULL); |
| 39 | Flags::Parse("string_opt_test=doobidoo" ); |
| 40 | EXPECT_EQ(true, FLAG_string_opt_test != NULL); |
| 41 | EXPECT_EQ(0, strcmp(FLAG_string_opt_test, "doobidoo" )); |
| 42 | |
| 43 | EXPECT_EQ(true, FLAG_entrypoint_test != NULL); |
| 44 | EXPECT_EQ(0, strcmp(FLAG_entrypoint_test, "main" )); |
| 45 | |
| 46 | EXPECT_EQ(100, FLAG_counter); |
| 47 | Flags::Parse("counter=-300" ); |
| 48 | EXPECT_EQ(-300, FLAG_counter); |
| 49 | Flags::Parse("counter=$300" ); |
| 50 | EXPECT_EQ(-300, FLAG_counter); |
| 51 | } |
| 52 | |
| 53 | } // namespace dart |
| 54 | |