Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/premake-4.x-stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJason Perkins <starkos@industriousone.com>2012-12-14 19:01:22 +0400
committerJason Perkins <starkos@industriousone.com>2012-12-14 19:01:22 +0400
commite9599feea3b3b42d92797ac789c43dadcee81f29 (patch)
tree9df2c2ad5f9651e95c8d83b3f0ea8af1524ecca1 /tests
parentd1a526110553cd33c4c649a60ac30bc3c06d7d5c (diff)
Port vpath tests from premake-dev
Diffstat (limited to 'tests')
-rw-r--r--tests/project/test_vpaths.lua111
1 files changed, 51 insertions, 60 deletions
diff --git a/tests/project/test_vpaths.lua b/tests/project/test_vpaths.lua
index 9a099ee..3055986 100644
--- a/tests/project/test_vpaths.lua
+++ b/tests/project/test_vpaths.lua
@@ -1,7 +1,7 @@
--
-- tests/project/test_vpaths.lua
-- Automated test suite for the project support functions.
--- Copyright (c) 2011 Jason Perkins and the Premake project
+-- Copyright (c) 2011-2012 Jason Perkins and the Premake project
--
T.project_vpaths = { }
@@ -13,14 +13,17 @@
-- Setup and teardown
--
- local sln, prj
+ local sln
+
function suite.setup()
sln = test.createsolution()
end
- local function prepare()
+ local function run()
premake.bake.buildconfigs()
- prj = premake.solution.getproject(sln, 1)
+ local prj = premake.solution.getproject(sln, 1)
+ local cfg = premake.getconfig(prj, "Debug")
+ return project.getvpath(prj, cfg.files[1])
end
@@ -29,39 +32,45 @@
--
function suite.ReturnsOriginalPath_OnNoVpaths()
- prepare()
- test.isequal("hello.c", project.getvpath(prj, "hello.c"))
+ files { "hello.c" }
+ test.isequal("hello.c", run())
end
function suite.ReturnsOriginalPath_OnNoMatches()
+ files { "hello.c" }
vpaths { ["Headers"] = "**.h" }
- prepare()
- test.isequal("hello.c", project.getvpath(prj, "hello.c"))
+ test.isequal("hello.c", run())
end
- function suite.CanTrimLeadingPaths()
+ function suite.CanStripPaths()
+ files { "src/myproject/hello.c" }
vpaths { [""] = "src" }
- prepare()
- test.isequal("myproject/hello.c", project.getvpath(prj, "src/myproject/hello.c"))
+ run()
+ test.isequal("hello.c", run())
+ end
+
+ function suite.CanTrimLeadingPaths()
+ files { "src/myproject/hello.c" }
+ vpaths { ["*"] = "src" }
+ test.isequal("myproject/hello.c", run())
end
function suite.PatternMayIncludeTrailingSlash()
+ files { "src/myproject/hello.c" }
vpaths { [""] = "src/myproject/" }
- prepare()
- test.isequal("hello.c", project.getvpath(prj, "src/myproject/hello.c"))
+ test.isequal("hello.c", run())
end
function suite.SimpleReplacementPatterns()
+ files { "src/myproject/hello.c" }
vpaths { ["sources"] = "src/myproject" }
- prepare()
- test.isequal("sources/hello.c", project.getvpath(prj, "src/myproject/hello.c"))
+ test.isequal("sources/hello.c", run())
end
function suite.ExactFilenameMatch()
files { "src/hello.c" }
vpaths { ["sources"] = "src/hello.c" }
- prepare()
- test.isequal("sources/hello.c", project.getvpath(prj, "src/hello.c"))
+ test.isequal("sources/hello.c", run())
end
@@ -70,69 +79,54 @@
--
function suite.MatchFilePattern_ToGroup_Flat()
+ files { "src/myproject/hello.h" }
vpaths { ["Headers"] = "**.h" }
- prepare()
- test.isequal("Headers/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ test.isequal("Headers/hello.h", run())
+ end
+
+ function suite.MatchFilePattern_ToNone_Flat()
+ files { "src/myproject/hello.h" }
+ vpaths { [""] = "**.h" }
+ test.isequal("hello.h", run())
end
function suite.MatchFilePattern_ToNestedGroup_Flat()
+ files { "src/myproject/hello.h" }
vpaths { ["Source/Headers"] = "**.h" }
- prepare()
- test.isequal("Source/Headers/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ test.isequal("Source/Headers/hello.h", run())
end
function suite.MatchFilePattern_ToGroup_WithTrailingSlash()
+ files { "src/myproject/hello.h" }
vpaths { ["Headers/"] = "**.h" }
- prepare()
- test.isequal("Headers/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ test.isequal("Headers/hello.h", run())
end
function suite.MatchFilePattern_ToNestedGroup_Flat()
+ files { "src/myproject/hello.h" }
vpaths { ["Group/Headers"] = "**.h" }
- prepare()
- test.isequal("Group/Headers/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ test.isequal("Group/Headers/hello.h", run())
end
function suite.MatchFilePattern_ToGroup_Nested()
- vpaths { ["Headers/**"] = "**.h" }
- prepare()
- test.isequal("Headers/src/myproject/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ files { "src/myproject/hello.h" }
+ vpaths { ["Headers/*"] = "**.h" }
+ test.isequal("Headers/src/myproject/hello.h", run())
end
function suite.MatchFilePattern_ToGroup_Nested_OneStar()
+ files { "src/myproject/hello.h" }
vpaths { ["Headers/*"] = "**.h" }
- prepare()
- test.isequal("Headers/src/myproject/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ test.isequal("Headers/src/myproject/hello.h", run())
end
function suite.MatchFilePatternWithPath_ToGroup_Nested()
- vpaths { ["Headers/**"] = "src/**.h" }
- prepare()
- test.isequal("Headers/myproject/hello.h", project.getvpath(prj, "src/myproject/hello.h"))
+ files { "src/myproject/hello.h" }
+ vpaths { ["Headers/*"] = "src/**.h" }
+ test.isequal("Headers/myproject/hello.h", run())
end
-
---
--- Test directory dot patterns
---
-
- function suite.RemovesLeadingDotFolder()
- prepare()
- test.isequal("hello.c", project.getvpath(prj, "./hello.c"))
- end
-
- function suite.RemovesLeadingDotDotFolder()
- prepare()
- test.isequal("hello.c", project.getvpath(prj, "../hello.c"))
- end
-
- function suite.RemovesMultipleLeadingDotDotFolders()
- prepare()
- test.isequal("src/hello.c", project.getvpath(prj, "../../src/hello.c"))
- end
-
-
--
-- Test with project locations
--
@@ -141,22 +135,19 @@
location "build"
files "src/hello.h"
vpaths { [""] = "src" }
- prepare()
- test.isequal("hello.h", project.getvpath(prj, prj.files[1]))
+ test.isequal("hello.h", run())
end
function suite.MatchFilePattern_OnProjectLocationSet()
location "build"
files "src/hello.h"
vpaths { ["Headers"] = "**.h" }
- prepare()
- test.isequal("Headers/hello.h", project.getvpath(prj, prj.files[1]))
+ test.isequal("Headers/hello.h", run())
end
function suite.MatchFilePatternWithPath_OnProjectLocationSet()
location "build"
files "src/hello.h"
vpaths { ["Headers"] = "src/**.h" }
- prepare()
- test.isequal("Headers/hello.h", project.getvpath(prj, prj.files[1]))
+ test.isequal("Headers/hello.h", run())
end