123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- --
- -- tests/test_snc.lua
- -- Automated test suite for the SNC toolset interface.
- -- Copyright (c) 2012-2013 Jason Perkins and the Premake project
- --
- local p = premake
- local suite = test.declare("tools_snc")
- local snc = p.tools.snc
- --
- -- Setup/teardown
- --
- local wks, prj, cfg
- function suite.setup()
- wks, prj = test.createWorkspace()
- system "PS3"
- end
- local function prepare()
- cfg = test.getconfig(prj, "Debug")
- end
- --
- -- Check the selection of tools based on the target system.
- --
- function suite.tools_onDefaults()
- prepare()
- test.isnil(snc.gettoolname(cfg, "cc"))
- test.isnil(snc.gettoolname(cfg, "cxx"))
- test.isnil(snc.gettoolname(cfg, "ar"))
- end
- function suite.tools_onPS3()
- system "PS3"
- prepare()
- test.isnil(snc.gettoolname(cfg, "cc"))
- test.isnil(snc.gettoolname(cfg, "cxx"))
- test.isnil(snc.gettoolname(cfg, "ar"))
- end
- --
- -- By default, the -MMD -MP are used to generate dependencies.
- --
- function suite.cppflags_defaultWithMMD()
- prepare()
- test.isequal({ "-MMD", "-MP" }, snc.getcppflags(cfg))
- end
- --
- -- Check the translation of CFLAGS.
- --
- function suite.cflags_onFatalWarnings()
- flags { "FatalWarnings" }
- prepare()
- test.isequal({ "-Xquit=2" }, snc.getcflags(cfg))
- end
- --
- -- Check the optimization flags.
- --
- function suite.cflags_onNoOptimize()
- optimize "Off"
- prepare()
- test.isequal({ "-O0" }, snc.getcflags(cfg))
- end
- function suite.cflags_onOptimize()
- optimize "On"
- prepare()
- test.isequal({ "-O1" }, snc.getcflags(cfg))
- end
- function suite.cflags_onOptimizeSize()
- optimize "Size"
- prepare()
- test.isequal({ "-Os" }, snc.getcflags(cfg))
- end
- function suite.cflags_onOptimizeSpeed()
- optimize "Speed"
- prepare()
- test.isequal({ "-O2" }, snc.getcflags(cfg))
- end
- function suite.cflags_onOptimizeFull()
- optimize "Full"
- prepare()
- test.isequal({ "-O3" }, snc.getcflags(cfg))
- end
- function suite.cflags_onOptimizeDebug()
- optimize "Debug"
- prepare()
- test.isequal({ "-Od" }, snc.getcflags(cfg))
- end
- --
- -- Turn on exceptions and RTTI by default, to match the other Premake supported toolsets.
- --
- function suite.cxxflags_onDefault()
- prepare()
- test.isequal({ "-Xc+=exceptions", "-Xc+=rtti" }, snc.getcxxflags(cfg))
- end
- --
- -- Check the translation of LDFLAGS.
- --
- function suite.cflags_onDefaults()
- prepare()
- test.isequal({ "-s" }, snc.getldflags(cfg))
- end
- --
- -- Check the formatting of linked libraries.
- --
- function suite.links_onSystemLibs()
- links { "fs_stub", "net_stub" }
- prepare()
- test.isequal({ "-lfs_stub", "-lnet_stub" }, snc.getlinks(cfg))
- end
- --
- -- When linking to a static sibling library, the relative path to the library
- -- should be used instead of the "-l" flag. This prevents linking against a
- -- shared library of the same name, should one be present.
- --
- function suite.links_onStaticSiblingLibrary()
- links { "MyProject2" }
- test.createproject(wks)
- system "Linux"
- kind "StaticLib"
- location "MyProject2"
- targetdir "lib"
- prepare()
- test.isequal({ "lib/libMyProject2.a" }, snc.getlinks(cfg))
- end
- --
- -- When linking object files, leave off the "-l".
- --
- function suite.links_onObjectFile()
- links { "generated.o" }
- prepare()
- test.isequal({ "generated.o" }, snc.getlinks(cfg))
- end
- --
- -- Check handling of forced includes.
- --
- function suite.forcedIncludeFiles()
- forceincludes { "stdafx.h", "include/sys.h" }
- prepare()
- test.isequal({'-include stdafx.h', '-include include/sys.h'}, snc.getforceincludes(cfg))
- end
|