1// Copyright (c) 2013 The Chromium 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 "gpu/config/gpu_control_list.h"
6#include "testing/gtest/include/gtest/gtest.h"
7
8namespace gpu {
9
10class MachineModelInfoTest : public testing::Test {
11 public:
12  MachineModelInfoTest() { }
13  virtual ~MachineModelInfoTest() { }
14
15  typedef GpuControlList::MachineModelInfo MachineModelInfo;
16};
17
18TEST_F(MachineModelInfoTest, ValidModelInfo) {
19  const std::string name_op[] = {
20    "contains",
21    "beginwith",
22    "endwith",
23    "="
24  };
25  const std::string version_op[] = {
26    "=",
27    "<",
28    "<=",
29    ">",
30    ">=",
31    "any",
32    "between"
33  };
34  for (size_t i = 0; i < arraysize(name_op); ++i) {
35    for (size_t j = 0; j < arraysize(version_op); ++j) {
36      std::string version1;
37      std::string version2;
38      if (version_op[j] != "any")
39        version1 = "3.14";
40      if (version_op[j] == "between")
41        version2 = "5.4";
42      MachineModelInfo info(name_op[i], "model",
43                            version_op[j], version1, version2);
44      EXPECT_TRUE(info.IsValid());
45    }
46  }
47}
48
49TEST_F(MachineModelInfoTest, ModelComparison) {
50  MachineModelInfo info("=", "model_a", ">", "3.4", std::string());
51  EXPECT_TRUE(info.Contains("model_a", "4"));
52  EXPECT_FALSE(info.Contains("model_b", "4"));
53  EXPECT_FALSE(info.Contains("model_a", "3.2"));
54}
55
56}  // namespace gpu
57
58