def test_APPLICATION(self): """ test Syntax.APPLICATION """ #set local flags tag ldflag = Syntax.LDFlags("-lpthread", "-lcrypto") libs = Syntax.Libs("$OUT_ROOT/baidu/broc/libhello.a") cpptags = Syntax.CppFlags("-DBROC", "-DRELEASE") #set global flags Syntax.LDFLAGS("-lmcpack", "-lrt") src = Syntax.Sources("hello.cpp") #an error name of application flag = False try: Syntax.APPLICATION("^*^&*!*$^", src) except Syntax.BrocArgumentIllegalError as ex: flag = True self.assertTrue(flag) #an error args of application flag = False try: Syntax.APPLICATION("hello", src, cpptags) except Syntax.BrocArgumentIllegalError as ex: flag = True self.assertTrue(flag) #global ldflags Syntax.APPLICATION("hello", src) app = self._env.Targets()[0] app.Action() self.assertEqual(app.link_options, ["-lmcpack"]) self.assertEqual(app.tag_libs.V(), []) #two samename target flag = False try: Syntax.APPLICATION("hello", src) except Syntax.BrocArgumentIllegalError as ex: flag = True self.assertTrue(flag) #local ldflags Syntax.APPLICATION("hello2", src, ldflag) app = self._env.Targets()[1] app.Action() self.assertEqual(app.link_options, ["-lpthread"]) self.assertEqual(app.tag_libs.V(), []) #Libs Syntax.APPLICATION("hello3", src, ldflag, libs) app = self._env.Targets()[2] app.Action() self.assertEqual(app.link_options, ["-lpthread"]) self.assertEqual(app.tag_libs.V(), ["broc_out/baidu/broc/libhello.a"])
def test_STATIC_LIBRARY(self): """ test Syntax.STATIC_LIBRARY """ #set local flags tag libs = Syntax.Libs("$OUT_ROOT/baidu/broc/libhello.a") cpptags = Syntax.CppFlags("-DBROC", "-DRELEASE") src = Syntax.Sources("hello.cpp") #an error name of application flag = False try: Syntax.STATIC_LIBRARY("^*^&*!*$^", src) except Syntax.BrocArgumentIllegalError as ex: flag = True self.assertTrue(flag) #an error args of application flag = False try: Syntax.STATIC_LIBRARY("hello", src, cpptags) except Syntax.BrocArgumentIllegalError as ex: flag = True self.assertTrue(flag) #Libs Syntax.STATIC_LIBRARY("hello", src, libs) library = self._env.Targets()[0] library.Action() self.assertEqual(library.tag_libs.V(), ["broc_out/baidu/broc/libhello.a"]) #two samename target flag = False try: Syntax.STATIC_LIBRARY("hello", src) except Syntax.BrocArgumentIllegalError as ex: flag = True self.assertTrue(flag) #library DoCopy Function.RunCommand("mkdir -p %s/lib" % self._module.root_path, \ ignore_stderr_when_ok = True) Function.RunCommand("touch %s/lib/libhello1.a" % self._module.root_path, \ ignore_stderr_when_ok = True) now_dir = os.getcwd() os.chdir(self._module.workspace) Syntax.STATIC_LIBRARY("hello1") lib_paths = os.path.join(self._module.workspace, "broc_out", \ self._module.module_cvspath, "output/lib/libhello1.a") self.assertTrue(os.path.exists(lib_paths)) os.chdir(now_dir)
def test_Sources(self): """ test Syntax.Sources """ #get local flags tag cpptags = Syntax.CppFlags("-DDEBUG_LOCAL", "-DRELEASE_LOCAL") cxxtags = Syntax.CxxFlags("-Wwrite-strings", "-Wswitch") ctags = Syntax.CFlags("-Wwrite-strings", "-Wswitch") incflags = Syntax.Include("$WORKSPACE/baidu/bcloud") tag = Syntax.Sources("hello.cpp", cpptags, cxxtags, ctags, incflags) src = tag.V()[0] Source.Source.Action(src) self.assertEqual(src.cppflags, ["-DDEBUG_LOCAL"]) self.assertEqual(src.cxxflags, ["-Wwrite-strings"]) self.assertEqual(src.cflags, ["-Wwrite-strings"]) self.assertEqual(src.includes, [".", "broc_out", "baidu/bcloud"]) self.assertEqual(src.infile, "baidu/broc/hello.cpp")