1*4882a593Smuzhiyunimport os 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunimport infra.basetest 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunclass TestLuaBase(infra.basetest.BRTest): 7*4882a593Smuzhiyun config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ 8*4882a593Smuzhiyun """ 9*4882a593Smuzhiyun BR2_TARGET_ROOTFS_CPIO=y 10*4882a593Smuzhiyun # BR2_TARGET_ROOTFS_TAR is not set 11*4882a593Smuzhiyun """ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun def login(self): 14*4882a593Smuzhiyun cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") 15*4882a593Smuzhiyun self.emulator.boot(arch="armv5", 16*4882a593Smuzhiyun kernel="builtin", 17*4882a593Smuzhiyun options=["-initrd", cpio_file]) 18*4882a593Smuzhiyun self.emulator.login() 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun def version_test(self, version): 21*4882a593Smuzhiyun cmd = "lua -v" 22*4882a593Smuzhiyun output, exit_code = self.emulator.run(cmd) 23*4882a593Smuzhiyun self.assertEqual(exit_code, 0) 24*4882a593Smuzhiyun self.assertIn(version, output[0]) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun def g_version_test(self, expected): 27*4882a593Smuzhiyun cmd = "lua -e 'print(_G._VERSION)'" 28*4882a593Smuzhiyun output, exit_code = self.emulator.run(cmd) 29*4882a593Smuzhiyun self.assertEqual(exit_code, 0) 30*4882a593Smuzhiyun self.assertEqual(output[0], expected) 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun def module_test(self, module, script="a=1"): 33*4882a593Smuzhiyun cmd = "lua -l {} -e '{}'".format(module, script) 34*4882a593Smuzhiyun self.assertRunOk(cmd) 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun 37*4882a593Smuzhiyunclass TestLua(TestLuaBase): 38*4882a593Smuzhiyun config = TestLuaBase.config + \ 39*4882a593Smuzhiyun """ 40*4882a593Smuzhiyun BR2_PACKAGE_LUA=y 41*4882a593Smuzhiyun """ 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun def test_run(self): 44*4882a593Smuzhiyun self.login() 45*4882a593Smuzhiyun self.version_test('Lua 5.3') 46*4882a593Smuzhiyun self.g_version_test('Lua 5.3') 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunclass TestLuajit(TestLuaBase): 50*4882a593Smuzhiyun config = TestLuaBase.config + \ 51*4882a593Smuzhiyun """ 52*4882a593Smuzhiyun BR2_PACKAGE_LUAJIT=y 53*4882a593Smuzhiyun """ 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun def test_run(self): 56*4882a593Smuzhiyun self.login() 57*4882a593Smuzhiyun self.version_test('LuaJIT 2') 58*4882a593Smuzhiyun self.g_version_test('Lua 5.1') 59