1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/**
* \file fn_configuration_tests.cpp
* \brief Automated tests for the configuration() function.
* \author Copyright (c) 2007-2008 Jason Perkins and the Premake project
*/
#include "premake.h"
#include "script_tests.h"
struct FnConfiguration : FxScript
{
FnConfiguration()
{
script_run_string(script,
"sln = solution('MySolution');"
" configurations {'Debug','Release'};"
"prj = project('MyProject');"
"cfg = configuration('Debug')");
}
};
SUITE(script)
{
/**************************************************************************
* Initial state tests
**************************************************************************/
TEST_FIXTURE(FxScript, Configuration_Exists_OnStartup)
{
const char* result = script_run_string(script,
"return (configuration ~= nil)");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FxScript, Configuration_ReturnsNil_OnNoActiveProject)
{
const char* result = script_run_string(script,
"return (configuration() == nil)");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FxScript, Configuration_RaisesError_OnNoActiveContainer)
{
const char* result = script_run_string(script, "configuration('Debug')");
CHECK_EQUAL("no active solution or project", result);
}
/**************************************************************************
* Object creation tests
**************************************************************************/
TEST_FIXTURE(FnConfiguration, Configuration_ReturnsObject_OnConfigName)
{
const char* result = script_run_string(script, "return (cfg ~= nil)");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FnConfiguration, Configuration_ReturnsPreviousObject_OnNoParameters)
{
const char* result = script_run_string(script, "return (cfg == configuration())");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FnConfiguration, Configuration_AddsToContainer)
{
const char* result = script_run_string(script, "return (#prj.blocks == 2)");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FnConfiguration, Configuration_DoesNothing_OnSimpleField)
{
const char* result = script_run_string(script, "return (cfg.objdir == nil)");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FnConfiguration, Configuration_SetsEmptyList_OnListField)
{
const char* result = script_run_string(script, "return (#cfg.defines == 0)");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FnConfiguration, Configuration_SetsTerms_OnSingleValue)
{
const char* result = script_run_string(script,
"cfg = configuration 'Debug';"
"return (#cfg.terms == 1 and cfg.terms[1] == 'Debug')");
CHECK_EQUAL("true", result);
}
TEST_FIXTURE(FnConfiguration, Configuration_SetsTerms_OnMultipleValues)
{
const char* result = script_run_string(script,
"cfg = configuration { 'Debug', 'windows' };"
"return (#cfg.terms == 2 and cfg.terms[1] == 'Debug' and cfg.terms[2] == 'windows')");
CHECK_EQUAL("true", result);
}
}
|