1// Copyright 2017 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 <fbl/initializer_list.h>
6#include <unittest/unittest.h>
7
8namespace {
9
10void ExpectListContents(size_t expected_size, fbl::initializer_list<int> list) {
11    EXPECT_EQ(expected_size, list.size());
12
13    size_t index = 0;
14    for (const int *it = list.begin(); it != list.end(); ++it, ++index) {
15        EXPECT_EQ(static_cast<int>(index), *it);
16    }
17    EXPECT_EQ(expected_size, index);
18}
19
20bool empty_test() {
21    BEGIN_TEST;
22
23    ExpectListContents(0u, {});
24
25    END_TEST;
26}
27
28bool non_empty_test() {
29    BEGIN_TEST;
30
31    ExpectListContents(6u, {0, 1, 2, 3, 4, 5});
32
33    END_TEST;
34}
35
36} // namespace
37
38BEGIN_TEST_CASE(initializer_list_tests)
39RUN_TEST(empty_test)
40RUN_TEST(non_empty_test)
41END_TEST_CASE(initializer_list_tests)
42