2014-03-03 17:47:55 +08:00
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import subprocess
|
|
|
|
import socket
|
|
|
|
import time
|
|
|
|
|
2014-03-06 16:52:34 +08:00
|
|
|
HOST_MAC = 'localhost'
|
|
|
|
HOST_ADNROID = '10.10.30.64'
|
|
|
|
HOST_IOS = '10.10.30.61'
|
2014-03-03 17:47:55 +08:00
|
|
|
PORT = 5678
|
|
|
|
|
2014-03-06 16:52:34 +08:00
|
|
|
suc_build_mac = 0
|
|
|
|
suc_build_android = 0
|
|
|
|
|
|
|
|
TYPE_MAC = 0
|
|
|
|
TYPE_ANDROID = 1
|
|
|
|
TYPE_IOS = 2
|
|
|
|
|
|
|
|
sleep_time = 1.5
|
|
|
|
def autotest(type):
|
2014-03-03 17:47:55 +08:00
|
|
|
soc = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
|
2014-03-06 16:52:34 +08:00
|
|
|
if type == TYPE_MAC:
|
|
|
|
soc.connect((HOST_MAC, PORT))
|
|
|
|
if type == TYPE_ANDROID:
|
|
|
|
soc.connect((HOST_ADNROID, PORT))
|
|
|
|
if type == TYPE_IOS:
|
|
|
|
soc.connect((HOST_IOS, PORT))
|
2014-03-03 17:47:55 +08:00
|
|
|
time.sleep(3)
|
|
|
|
print 'autotest run:'
|
|
|
|
soc.send('autotest run\r\n')
|
|
|
|
|
|
|
|
while True:
|
|
|
|
buf = soc.recv(64)
|
|
|
|
print buf
|
|
|
|
|
|
|
|
print 'test end and close socket.'
|
|
|
|
soc.close()
|
|
|
|
|
|
|
|
#----------------autotest build and run----------------#
|
2014-03-06 16:52:34 +08:00
|
|
|
def MAC_BUILD():
|
|
|
|
def cleanProj():
|
2014-03-11 20:47:02 +08:00
|
|
|
infoClean = os.system('xcodebuild -project ./build/cocos2d_tests.xcodeproj -target cpp-tests\ Mac clean')
|
2014-03-06 16:52:34 +08:00
|
|
|
print 'infoClean: ', infoClean
|
|
|
|
if infoClean != 0:
|
|
|
|
return False
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
return True
|
|
|
|
def buildProj():
|
2014-03-11 20:47:02 +08:00
|
|
|
infoBuild = os.system('xcodebuild -project ./build/cocos2d_tests.xcodeproj -target cpp-tests\ Mac')
|
2014-03-06 16:52:34 +08:00
|
|
|
print 'infoBuild: ', infoBuild
|
|
|
|
if infoBuild != 0:
|
|
|
|
return False
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
return True
|
|
|
|
def openProj():
|
2014-03-11 20:47:02 +08:00
|
|
|
cmd = 'open ./build/build/Debug/cpp-tests\ Mac.app'
|
2014-03-06 16:52:34 +08:00
|
|
|
print 'cmd: ', cmd
|
|
|
|
infoOpen = os.system(cmd)
|
|
|
|
print 'infoOpen: ', infoOpen
|
|
|
|
if infoOpen != 0:
|
|
|
|
return False
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
return True
|
|
|
|
def buildAndRun():
|
|
|
|
if not cleanProj():
|
|
|
|
print '**CLEAN FAILED**'
|
|
|
|
if not buildProj():
|
|
|
|
cleanProj()
|
|
|
|
buildProj()
|
|
|
|
if not openProj():
|
|
|
|
return False
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
return True
|
|
|
|
return buildAndRun()
|
2014-03-03 17:47:55 +08:00
|
|
|
#----------------autotest build and run end----------------#
|
|
|
|
|
2014-03-06 16:52:34 +08:00
|
|
|
#----------------autotest-android build and run----------------#
|
|
|
|
def ANDROID_BUILD():
|
|
|
|
def cleanProj():
|
|
|
|
infoClean = os.system('rm -rf libs gen obj assets bin')
|
|
|
|
print 'infoClean: ', infoClean
|
|
|
|
infoClean = os.system('adb uninstall org.cocos2dx.testcpp');
|
|
|
|
print 'infoClean: ', infoClean
|
|
|
|
if infoClean != 0:
|
|
|
|
print 'clean **CLEAN FAILED**'
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
def updateProperty():
|
|
|
|
infoUpdate = os.system('android update project -p ./cocos/2d/platform/android/java/ -t 12')
|
|
|
|
print 'cocos update:', infoUpdate
|
|
|
|
infoUpdate = os.system('android update project -p ./tests/proj.android/ -t 12')
|
|
|
|
print 'test update:', infoUpdate
|
|
|
|
def buildProj():
|
|
|
|
infoBuild = os.system('./build/android-build.py testcpp')
|
|
|
|
print 'infoBuild testcpp: ', infoBuild
|
|
|
|
infoBuild = os.system('ant -buildfile ./tests/proj.android/ debug install')
|
|
|
|
print 'infoBuild: ', infoBuild
|
|
|
|
if infoBuild != 0:
|
|
|
|
print 'build **BUILD FAILED**'
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
return infoBuild
|
|
|
|
def openProj():
|
|
|
|
cmd = 'adb shell am start -n org.cocos2dx.testcpp/org.cocos2dx.testcpp.Cocos2dxActivity'
|
|
|
|
print 'cmd: ', cmd
|
|
|
|
infoOpen = os.system(cmd)
|
|
|
|
print 'infoOpen: ', infoOpen
|
|
|
|
if infoOpen != 0:
|
|
|
|
return False
|
|
|
|
time.sleep(sleep_time)
|
|
|
|
return True
|
|
|
|
def buildAndRun():
|
|
|
|
cleanProj()
|
|
|
|
updateProperty()
|
|
|
|
if buildProj() != 0:
|
|
|
|
cleanProj()
|
|
|
|
buildProj()
|
|
|
|
return openProj()
|
|
|
|
return buildAndRun()
|
|
|
|
#----------------autotest-android build and run end----------------#
|
|
|
|
|
2014-03-03 17:47:55 +08:00
|
|
|
def main():
|
2014-03-06 16:52:34 +08:00
|
|
|
suc_build_mac = MAC_BUILD()
|
|
|
|
suc_build_android = ANDROID_BUILD()
|
|
|
|
if suc_build_mac:
|
|
|
|
autotest(TYPE_MAC)
|
|
|
|
if suc_build_android:
|
|
|
|
autotest(TYPE_ANDROID)
|
2014-03-03 17:47:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
# -------------- main --------------
|
|
|
|
if __name__ == '__main__':
|
|
|
|
sys_ret = 0
|
|
|
|
try:
|
|
|
|
sys_ret = main()
|
|
|
|
except:
|
|
|
|
traceback.print_exc()
|
|
|
|
sys_ret = 1
|
|
|
|
finally:
|
|
|
|
sys.exit(sys_ret)
|
|
|
|
|