-<?xml version="1.0" encoding="UTF-8"?>\r
-<buildinfos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-xsi:noNamespaceSchemaLocation="buildinfo.xsd">\r
- <buildinfo name="model" support="true" type="String">\r
- <value>SM-Z130H</value>\r
- </buildinfo>\r
- <buildinfo name="manufacturer" support="true" type="String">\r
- <value>samsung</value>\r
- </buildinfo>\r
- <buildinfo name="buildVersion" support="true" type="String">\r
- <value>Z130HDDE0ANL7</value>\r
- </buildinfo>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<buildinfos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:noNamespaceSchemaLocation="buildinfo.xsd">
+ <buildinfo name="model" support="true" type="String">
+ <value>SM-Z130H</value>
+ </buildinfo>
+ <buildinfo name="manufacturer" support="true" type="String">
+ <value>samsung</value>
+ </buildinfo>
+ <buildinfo name="buildVersion" support="true" type="String">
+ <value>Z130HDDE0ANL7</value>
+ </buildinfo>
</buildinfos>
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<capabilities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-xsi:noNamespaceSchemaLocation="capability.xsd">\r
- <capability name="http://tizen.org/feature/account" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/battery" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/bookmark" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/calendar" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/camera" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/camera.back" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/camera.back.flash" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/camera.front" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/camera.front.flash" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/contact" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/database.encryption" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/datasync" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/datacontrol" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/download" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/fmradio" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/graphics.acceleration" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/input.keyboard" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/input.keyboard.layout" support="qwerty" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/location" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/location.gps" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/location.wps" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/email" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/microphone" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/multi_point_touch.pinch_zoom" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/multi_point_touch.point_count" support="10" type="Integer">\r
- </capability>\r
- <capability name="http://tizen.org/feature/network.bluetooth" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.bluetooth.health" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.nfc" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.nfc.card_emulation" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.nfc.reserved_push" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.push" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.secure_element" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.telephony" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.telephony.mms" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.wifi" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.wifi.direct" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/notification" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.texture_format" support="etc" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/opengles.texture_format.3dc" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.texture_format.atc" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.texture_format.etc" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.texture_format.ptc" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.texture_format.pvrtc" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.texture_format.utc" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.version.1_1" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/opengles.version.2_0" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.api.version" support="2.3" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/platform.core.cpu.arch" support="x86" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/platform.core.cpu.arch.armv6" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.cpu.arch.armv7" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.cpu.arch.x86" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.fpu.arch" support="sse3" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/platform.core.fpu.arch.sse2" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.fpu.arch.sse3" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.fpu.arch.ssse3" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.fpu.arch.vfpv2" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.fpu.arch.vfpv3" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.native.api.version" support="2.3" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/platform.native.osp_compatible" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.version" support="2.3.0" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/platform.web.api.version" support="2.3" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/profile" support="MOBILE" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/screen" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.auto_rotation" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.bpp" support="32" type="Integer">\r
- </capability>\r
- <capability name="http://tizen.org/feature/screen.coordinate_system.size.large" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.coordinate_system.size.normal" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.dpi" support="207" type="Integer">\r
- </capability>\r
- <capability name="http://tizen.org/feature/screen.height" support="800" type="Integer">\r
- </capability>\r
- <capability name="http://tizen.org/feature/screen.output.hdmi" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.output.rca" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.1080.1920" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.240.400" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.320.320" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.320.480" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.480.800" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.540.960" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.600.1024" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.720.1280" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.width" support="480" type="Integer">\r
- </capability>\r
- <capability name="http://tizen.org/feature/sensor.accelerometer" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.accelerometer.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.barometer" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.barometer.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.gyroscope" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.gyroscope.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.heart_rate_monitor" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.magnetometer" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.magnetometer.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.pedometer" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.photometer" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.photometer.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.proximity" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.proximity.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.tiltmeter" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.tiltmeter.wakeup" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.ultraviolet" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.wrist_up" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/shell.appwidget" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sip.voip" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/speech.recognition" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/speech.synthesis" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/systemsetting" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/systemsetting.home_screen" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/systemsetting.incoming_call" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/systemsetting.lock_screen" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/systemsetting.notification_email" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/usb.accessory" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/usb.host" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/vision.face_recognition" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/vision.image_recognition" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/vision.qrcode_generation" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/vision.qrcode_recognition" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/websetting" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/system/platform.name" support="Tizen" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/archive" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/badge" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/exif" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/led" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/multimedia.transcoder" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/capability/network.bluetooth.always_on" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.bluetooth.audio.call" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.bluetooth.audio.media" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.bluetooth.hid" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.bluetooth.le" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/network.bluetooth.opp" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/platform.core.cpu.frequency" support="0" type="Integer">\r
- </capability>\r
- <capability name="http://tizen.org/feature/platform.version.name" support="" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/screen.size.all" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.large" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/screen.size.normal.360.480" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.activity_recognition" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.gesture_recognition" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.gravity" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.humidity" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.linear_acceleration" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.rotation_vector" support="true" type="boolean"/>\r
- <capability name="http://tizen.org/feature/sensor.temperature" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/system/build.date" support="2015.02.23" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/build.string" support="Tizen-2.3.0_Mobile-Emulator_20150223.1659" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/build.time" support="16:59:07" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/manufacturer" support="Tizen" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/tizenid" support="3PXV0WmJ+1caWiHvW7/s1APzFAA=" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/model_name" support="Emulator" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/platform.communication_processor" support="none" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/system/platform.processor" support="Emulator" type="String">\r
- </capability>\r
- <capability name="http://tizen.org/feature/web.service" support="false" type="boolean"/>\r
- <capability name="http://tizen.org/feature/humanactivitymonitor" support="true" type="boolean"/>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<capabilities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:noNamespaceSchemaLocation="capability.xsd">
+ <capability name="http://tizen.org/feature/account" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/battery" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/bookmark" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/calendar" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/camera" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/camera.back" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/camera.back.flash" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/camera.front" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/camera.front.flash" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/contact" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/database.encryption" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/datasync" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/datacontrol" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/download" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/fmradio" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/graphics.acceleration" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/input.keyboard" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/input.keyboard.layout" support="qwerty" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/location" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/location.gps" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/location.wps" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/email" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/microphone" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/multi_point_touch.pinch_zoom" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/multi_point_touch.point_count" support="10" type="Integer">
+ </capability>
+ <capability name="http://tizen.org/feature/network.bluetooth" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.bluetooth.health" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.nfc" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.nfc.card_emulation" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.nfc.reserved_push" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.push" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.secure_element" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.telephony" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.telephony.mms" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.wifi" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.wifi.direct" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/notification" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.texture_format" support="etc" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/opengles.texture_format.3dc" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.texture_format.atc" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.texture_format.etc" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.texture_format.ptc" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.texture_format.pvrtc" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.texture_format.utc" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.version.1_1" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/opengles.version.2_0" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.api.version" support="2.3" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/platform.core.cpu.arch" support="x86" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/platform.core.cpu.arch.armv6" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.cpu.arch.armv7" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.cpu.arch.x86" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.fpu.arch" support="sse3" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/platform.core.fpu.arch.sse2" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.fpu.arch.sse3" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.fpu.arch.ssse3" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.fpu.arch.vfpv2" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.fpu.arch.vfpv3" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.native.api.version" support="2.3" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/platform.native.osp_compatible" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.version" support="2.3.0" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/platform.web.api.version" support="2.3" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/profile" support="MOBILE" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/screen" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.auto_rotation" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.bpp" support="32" type="Integer">
+ </capability>
+ <capability name="http://tizen.org/feature/screen.coordinate_system.size.large" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.coordinate_system.size.normal" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.dpi" support="207" type="Integer">
+ </capability>
+ <capability name="http://tizen.org/feature/screen.height" support="800" type="Integer">
+ </capability>
+ <capability name="http://tizen.org/feature/screen.output.hdmi" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.output.rca" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.1080.1920" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.240.400" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.320.320" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.320.480" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.480.800" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.540.960" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.600.1024" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.720.1280" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.width" support="480" type="Integer">
+ </capability>
+ <capability name="http://tizen.org/feature/sensor.accelerometer" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.accelerometer.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.barometer" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.barometer.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.gyroscope" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.gyroscope.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.heart_rate_monitor" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.magnetometer" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.magnetometer.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.pedometer" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.photometer" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.photometer.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.proximity" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.proximity.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.tiltmeter" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.tiltmeter.wakeup" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.ultraviolet" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.wrist_up" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/shell.appwidget" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sip.voip" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/speech.recognition" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/speech.synthesis" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/systemsetting" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/systemsetting.home_screen" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/systemsetting.incoming_call" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/systemsetting.lock_screen" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/systemsetting.notification_email" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/usb.accessory" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/usb.host" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/vision.face_recognition" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/vision.image_recognition" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/vision.qrcode_generation" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/vision.qrcode_recognition" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/websetting" support="true" type="boolean"/>
+ <capability name="http://tizen.org/system/platform.name" support="Tizen" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/archive" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/badge" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/exif" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/led" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/multimedia.transcoder" support="false" type="boolean"/>
+ <capability name="http://tizen.org/capability/network.bluetooth.always_on" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.bluetooth.audio.call" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.bluetooth.audio.media" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.bluetooth.hid" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.bluetooth.le" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/network.bluetooth.opp" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/platform.core.cpu.frequency" support="0" type="Integer">
+ </capability>
+ <capability name="http://tizen.org/feature/platform.version.name" support="" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/screen.size.all" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.large" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/screen.size.normal.360.480" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.activity_recognition" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.gesture_recognition" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.gravity" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.humidity" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.linear_acceleration" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.rotation_vector" support="true" type="boolean"/>
+ <capability name="http://tizen.org/feature/sensor.temperature" support="false" type="boolean"/>
+ <capability name="http://tizen.org/system/build.date" support="2015.02.23" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/build.string" support="Tizen-2.3.0_Mobile-Emulator_20150223.1659" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/build.time" support="16:59:07" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/manufacturer" support="Tizen" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/tizenid" support="3PXV0WmJ+1caWiHvW7/s1APzFAA=" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/model_name" support="Emulator" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/platform.communication_processor" support="none" type="String">
+ </capability>
+ <capability name="http://tizen.org/system/platform.processor" support="Emulator" type="String">
+ </capability>
+ <capability name="http://tizen.org/feature/web.service" support="false" type="boolean"/>
+ <capability name="http://tizen.org/feature/humanactivitymonitor" support="true" type="boolean"/>
</capabilities>
\ No newline at end of file
-Reference : http://168.219.209.56/confluence/display/Tizen3/Running+Web+TCT+for+Tizen+3.0\r
-\r
----------------------------------------------------------------------------------------\r
-\r
-1. Please push the below attached 2 files in the below location(target) before the test start.\r
-\r
-file name : \r
-\r
-capability.xml\r
-buildinfo.xml\r
-\r
-\r
-location :\r
-\r
-/home/owner/content/Documents/tct/\r
-\r
-\r
-ex) sdb push capability.xml /home/owner/content/Documents/tct/\r
-ex) sdb push buildinfo.xml /home/owner/content/Documents/tct/\r
-\r
-\r
----------------------------------------------------------------------------------------\r
+Reference : http://168.219.209.56/confluence/display/Tizen3/Running+Web+TCT+for+Tizen+3.0
+
+---------------------------------------------------------------------------------------
+
+1. Please push the below attached 2 files in the below location(target) before the test start.
+
+file name :
+
+capability.xml
+buildinfo.xml
+
+
+location :
+
+/home/owner/content/Documents/tct/
+
+
+ex) sdb push capability.xml /home/owner/content/Documents/tct/
+ex) sdb push buildinfo.xml /home/owner/content/Documents/tct/
+
+
+---------------------------------------------------------------------------------------
-#!/usr/bin/env python
+#!/usr/bin/env python3
import os
import shutil
def doCMD(cmd):
# Do not need handle timeout in this short script, let tool do it
- print "-->> \"%s\"" % cmd
+ print ("-->> \"%s\"" % cmd)
output = []
cmd_return_code = 1
cmd_proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
- output_line = cmd_proc.stdout.readline().strip("\r\n")
+ output_line = cmd_proc.stdout.readline().decode('utf-8').strip("\r\n")
cmd_return_code = cmd_proc.poll()
if output_line == '' and cmd_return_code != None:
break
"-a", dest="user", action="store", help="User name")
global PARAMETERS
(PARAMETERS, args) = opts_parser.parse_args()
- except Exception, e:
- print "Got wrong option: %s, exit ..." % e
+ except Exception as e:
+ print ("Got wrong option: %s, exit ..." % e)
sys.exit(1)
if not PARAMETERS.user:
PARAMETERS.mode = "SSH"
if not PARAMETERS.device:
- print "No device provided"
+ print ("No device provided")
sys.exit(1)
user_info = getUSERID()
userid = user_info[1][0]
XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
else:
- print "[Error] cmd commands error : %s"%str(user_info[1])
+ print ("[Error] cmd commands error : %s"%str(user_info[1]))
sys.exit(1)
if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
- print "-i and -u are conflict"
+ print ("-i and -u are conflict")
sys.exit(1)
if PARAMETERS.buninstpkg:
-#!/usr/bin/python
+#!/usr/bin/env python3
from sdbmanager import SdbManager
if dev.getDeviceId() == deviceId:
return dev
- print "#ERROR#: The '%s' device Id exists error" % deviceId
+ print("#ERROR#: The '%s' device Id exists error" % deviceId)
return None
def loadDeviceList(self):
if len(connDevices) > 0:
self._updateConnDevice(connDevices)
- print "Connected Devices = %s" \
- % str([dev.devId for dev in self.devices])
+ print("Connected Devices = %s" \
+ % str([dev.devId for dev in self.devices]))
return True
else:
self._resetDevices()
self.devType = devType
def _printDevInfo(self):
- print "===== Device Infomation ====="
- print " Name : " + self.devName
- print " Id : " + self.devId
- print " Type : " + self.devType
- print "============================="
+ print("===== Device Infomation =====")
+ print(" Name : " + self.devName)
+ print(" Id : " + self.devId)
+ print(" Type : " + self.devType)
+ print("=============================")
def getDeviceId(self):
return self.devId
-#!/usr/bin/python
+#!/usr/bin/env python3
import subprocess
import time
@staticmethod
def hostCommand(command):
- print command
+ print(command)
proc = subprocess.Popen(command, shell=True, \
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if exit_code is not None:
break
- output = proc.stdout.read()
+ output = proc.stdout.read().decode('utf-8')
if output:
- print output
+ print(output)
- errlog = proc.stderr.read()
+ errlog = proc.stderr.read().decode('utf-8')
if errlog:
- print errlog
+ print(errlog)
return True
@staticmethod
def hostCommandwithResult(command):
- print command
+ print(command)
proc = subprocess.Popen(command, shell=True, \
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if exit_code is not None:
break
- return proc.stdout.read()
+ return proc.stdout.read().decode('utf-8')
@staticmethod
def sdbCommand(command, timeout=90):
- print command
+ print(command)
proc = subprocess.Popen(command,
shell=True,
stdout=subprocess.PIPE,
@staticmethod
def _checkDevIdExists(_devid):
if len(_devid) < 0:
- print "#ERROR#: The '%s' device Id exists error" % _devid
+ print("#ERROR#: The '%s' device Id exists error" % _devid)
return False
return True
@staticmethod
def sdbPush(_devid, local, remote):
if SdbManager._checkFileExists(local) is False:
- print '#WARNING#: The %s file exists error' % local
+ print('#WARNING#: The %s file exists error' % local)
return False
FAIL_LOG = "#ERROR#: sdb push failed"
exit_code, re_stdout, re_stderr = SdbManager.sdbCommand(push_cmd)
if exit_code is None:
- print FAIL_LOG
- errLog = re_stderr.read()
- if errLog: print errLog
+ print(FAIL_LOG)
+ errLog = re_stderr.read().decode('utf-8')
+ if errLog: print(errLog)
return False
else:
- print re_stdout.read()
+ print(re_stdout.read().decode('utf-8'))
return True
@staticmethod
exit_code, re_stdout, re_stderr = SdbManager.sdbCommand(shell_cmd, timeout)
if exit_code is None:
- print FAIL_LOG
- errLog = re_stderr.read()
- if errLog : print errLog
+ print(FAIL_LOG)
+ errLog = re_stderr.read().decode('utf-8')
+ if errLog : print(errLog)
return None
else:
- outLog = re_stdout.read()
- errLog = re_stderr.read()
+ outLog = re_stdout.read().decode('utf-8')
+ errLog = re_stderr.read().decode('utf-8')
if errLog:
- print FAIL_LOG
- print errLog
+ print(FAIL_LOG)
+ print(errLog)
return None
if outLog:
- print outLog
+ print(outLog)
return outLog
@staticmethod
exit_code, re_stdout, re_stderr = SdbManager.sdbCommand(root_cmd, 20)
if exit_code is None:
- print FAIL_LOG
- errLog = re_stderr.read()
- if errLog: print (str(errLog))
+ print(FAIL_LOG)
+ errLog = re_stderr.read().decode('utf-8')
+ if errLog: print((str(errLog)))
checkLog = SdbManager.sdbShell(deviceId, 'whoami')
if checkLog and checkLog.find('root') != -1:
- print 'SDB ROOT ON'
+ print('SDB ROOT ON')
is_pass = True
else:
- print FAIL_LOG
- print str(checkLog)
+ print(FAIL_LOG)
+ print(str(checkLog))
return is_pass
SdbManager.sdbCommand(start_server_cmd, 8)
exit_code, re_stdout, re_stderr = SdbManager.sdbCommand(dev_cmd, 20)
if exit_code is None:
- print "#ERROR#: %s" % re_stderr.read()
+ print("#ERROR#: %s" % re_stderr.read().decode('utf-8'))
return None
- return re_stdout.read()
+ return re_stdout.read().decode('utf-8')
@staticmethod
def sdbSetDate(devid):
- print "set device date"
+ print("set device date")
HDATE = '`date "+%Y-%m-%d %H:%M:%S %Z"`'
date_cmd = '"date -s \''+ HDATE + '\'"'
SdbManager.sdbShell(devid, date_cmd)
pid = pidgrp.pop()
try:
os.kill(int(pid), signal.SIGKILL)
- except OSError, error:
+ except OSError as error:
pattern = re.compile('No such process')
match = pattern.search(str(error))
if not match:
- print "[ Error: fail to kill pid: %s," \
- " error: %s ]\n" % (int(pid), error)
+ print("[ Error: fail to kill pid: %s," \
+ " error: %s ]\n" % (int(pid), error))
# kill for windows platform
else:
kernel32 = ctypes.windll.kernel32
handle = kernel32.OpenProcess(1, 0, int(ppid))
kernel32.TerminateProcess(handle, 0)
- except OSError, error:
+ except OSError as error:
pattern = re.compile('No such process')
match = pattern.search(str(error))
if not match:
- print "[ Error: fail to kill pid: %s, error: %s ]\n" \
- % (int(ppid), error)
+ print("[ Error: fail to kill pid: %s, error: %s ]\n" \
+ % (int(ppid), error))
return None
-#!/usr/bin/python\r
-\r
-"""Usage:\r
- tct-config-device.py [--install [--deviceid <serial_no>]]\r
- tct-config-device.py --purge [--deviceid <serial_no>]\r
- tct-config-device.py --check [--deviceid <serial_no>][--procid <process_name>]\r
- tct-config-device.py --bhtest <profile>\r
-\r
-Options:\r
- -h, --help show this help message and exit\r
- --install Install tct resources to TIZEN device,it can be omitted\r
- --purge Clean up tct resources from TIZEN device\r
- --check Check test resource on device\r
- --bhtest Install tct behavior test\r
- --deviceid Set the device serial number\r
- --procid Set the check process name\r
-\r
-"""\r
-import os\r
-import sys\r
-import time\r
-import ConfigParser\r
-import threading\r
-import subprocess\r
-\r
-\r
-from optparse import OptionParser\r
-from devicemanager import DeviceManager\r
-from sdbmanager import SdbManager\r
-\r
-JOIN = os.path.join\r
-EXISTS = os.path.exists\r
-DIRNAME = os.path.dirname\r
-BASENAME = os.path.basename\r
-ABSPATH = os.path.abspath\r
-SPLIT = os.path.split\r
-\r
-CURENT_DIR = SPLIT(DIRNAME(ABSPATH(__file__)))[0]\r
-\r
-TOOLS_DIR = JOIN(CURENT_DIR, "tools")\r
-RESRC_DIR = JOIN(CURENT_DIR, "resource")\r
-PKGS_DIR = JOIN(CURENT_DIR, "package")\r
-\r
-DEVID = ""\r
-\r
-TIZENV = "tizen_6.5"\r
-\r
-DLOG_CLEAR = "dlogutil -c"\r
-DLOG_UTIL = "sdb -s %s shell dlogutil -v time"\r
-\r
-TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"\r
-tct_parser = ConfigParser.ConfigParser()\r
-tct_parser.read(TCT_CONFIG_FILE)\r
-\r
-DEVICE_SUITE_TARGET_24 = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_24')\r
-DEVICE_SUITE_TARGET_30 = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')\r
-DEVICE_EXECUTION_MODE_30 = tct_parser.get('DEVICE', 'DEVICE_EXECUTION_MODE_30')\r
-\r
-if TIZENV.find('tizen_6.5') > -1:\r
- DEVICE_SUITE_TARGET = DEVICE_SUITE_TARGET_30\r
-else:\r
- DEVICE_SUITE_TARGET = DEVICE_SUITE_TARGET_24\r
-\r
-def LS(root, file_name, extension=None):\r
- import glob\r
-\r
- file_path = ""\r
- if extension:\r
- file_path = JOIN(root, file_name) + "*." + extension\r
- else:\r
- file_path = JOIN(root, file_name) + "*"\r
- files = glob.iglob(r'' + file_path + '')\r
- for f in files:\r
- return BASENAME(f)\r
-\r
-def get_device_arch():\r
- global DEV_ARCH\r
- #ARCHCMD = SDB_SERNO + " shell \"cat /etc/products.d/tizen.prod |grep \<arch\""\r
- arch_cmd = "cat /etc/config/model-config.xml | grep tizen.org/feature/platform.core.cpu.arch"\r
- #result example : <key name="tizen.org/feature/platform.core.cpu.arch" type="string">armv7</key>\r
- result = SdbManager.sdbShell(DEVID, arch_cmd)\r
- if result and len(result) > 0:\r
- arch_str = result.split('\n')[0]\r
- if arch_str and arch_str.find('armv') > -1:\r
- DEV_ARCH = "arm"\r
- print "info: [* Arch Type : arm *]"\r
- elif arch_str and arch_str.find("aarch64") > -1:\r
- DEV_ARCH = "aarch64"\r
- print "info: [* Arch Type : aarch64 *]"\r
- elif arch_str and arch_str.find('x86_64') > -1:\r
- DEV_ARCH = "ia64"\r
- print "info: [* Arch Type : ia64 *]"\r
- elif arch_str and (arch_str.find("i686") > -1 or arch_str.find("x86") > -1 or arch_str.find("i386") > -1):\r
- DEV_ARCH = "ia"\r
- print "info: [* Arch Type : ia *]"\r
- else:\r
- print "info: [* Arch Type : None *]"\r
- return False\r
- return True\r
- else:\r
- print "#ERROR#: Failed to get device cpu_arch type"\r
- return False\r
-\r
-\r
-def kill_process(process_name):\r
- proc_cmd = "ps aux | grep " + process_name + " | grep -v grep | awk '{print $2}'"\r
- result = SdbManager.sdbShell(DEVID, proc_cmd)\r
- if result and len(result) > 0:\r
- kill_cmd = "kill -9 " + str(result).strip() + " > /dev/null 2>&1"\r
- SdbManager.sdbShell(DEVID, kill_cmd)\r
- print "info: %s process has been killed" % process_name\r
- else:\r
- print "info: No process of %s activated" % process_name\r
-\r
-def remove_tinyweb():\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/server.pem > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/tinyweb > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/cgi-getcookie > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/cgi-getfield > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/libmongoose.so > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/echo.so > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/libssl.so > /dev/null 2>&1")\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/libcrypto.so > /dev/null 2>&1")\r
-\r
-def remove_stub():\r
- SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/testkit-stub")\r
-\r
-\r
-def uninstall_testconfig():\r
- if TIZENV.find('tizen_6.5') > -1:\r
- inst_path = RESRC_DIR + os.sep + 'tct-testconfig' + os.sep + 'inst.py'\r
- SdbManager.hostCommand("python %s -s %s -u" % (inst_path, DEVID))\r
- else:\r
- RPMPKG = LS(RESRC_DIR, "tct-testconfig")\r
- if not RPMPKG:\r
- sys.exit("#ERROR#: cannot found tct-testconfig.zip file in resource dir")\r
- uninst_cmd = JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/inst.sh') + ' -u'\r
- SdbManager.sdbShell(DEVID, uninst_cmd)\r
- rm_cmd = 'rm -f ' + JOIN(DEVICE_SUITE_TARGET, 'tct/', RPMPKG)\r
- SdbManager.sdbShell(DEVID, rm_cmd)\r
-\r
-\r
-def uninstall_behavior():\r
- print "info: Uninstall behavior tool."\r
- if TIZENV.find('tizen_6.5') > -1:\r
- pass\r
- else:\r
- uninst_cmd = JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-behavior-tests/inst.sh') + ' -u'\r
- SdbManager.sdbShell(DEVID, uninst_cmd)\r
-\r
-\r
-def check_resource_dir():\r
- print "info: check resource directory."\r
- if os.path.exists(RESRC_DIR):\r
- SdbManager.sdbShell(DEVID, 'mkdir -p ' + JOIN(DEVICE_SUITE_TARGET, 'tct/'))\r
- SdbManager.sdbShell(DEVID, 'mkdir -p ' + JOIN(DEVICE_SUITE_TARGET, 'Documents/'))\r
- return True\r
- else:\r
- print "#WARNING#: The directory resource does not exists. Please copy test resources to %s " % RESRC_DIR\r
- return False\r
-\r
-def check_tinyweb():\r
- print "info: Check tinyweb."\r
- result = SdbManager.sdbShell(DEVID, "ls /opt/home/developer/ | grep tinyweb")\r
- if result and result.find('tinyweb'):\r
- remove_tinyweb()\r
- install_tinyweb()\r
- launch_tinyweb()\r
- else:\r
- install_tinyweb()\r
- launch_tinyweb()\r
-\r
-\r
-def port_manager():\r
- print "info: Check the tinyweb port"\r
- result = SdbManager.sdbShell('fuser -n tcp 80 8080 8081 8082 8083 8443')\r
- if result and len(result) > 0:\r
- check_port = SdbManager.sdbShell('su "netstat -nap |grep tinyweb"')\r
- if len(check_port) > 0:\r
- print "info: tinyweb on"\r
- else:\r
- print "info: Port is available"\r
-\r
-\r
-def launch_tinyweb():\r
- dpath_cmd = "printenv PATH"\r
- dpath = SdbManager.sdbShell(DEVID, dpath_cmd)\r
-\r
- launch_cmd = 'sdb -s ' + DEVID + ' shell ' + '"env LD_LIBRARY_PATH=/opt/home/developer PATH=' + dpath.strip() + \\r
- ':/opt/home/developer/ tinyweb -ssl_certificate /opt/home/developer/server.pem -document_root ' + \\r
- JOIN(DEVICE_SUITE_TARGET, 'tct') + ' -listening_ports 80,8080,8081,8082,8083,8443s; sleep 3s" 0> /dev/null'\r
-\r
- SdbManager.sdbCommand(launch_cmd, 10)\r
-\r
- check_tinyweb_cmd = '\"ps aux | grep tinyweb | grep -v grep\"'\r
- result = SdbManager.sdbShell(DEVID, check_tinyweb_cmd)\r
- if result and result.find('tinyweb') > -1:\r
- print "info: Active process tinyweb successfully."\r
- return True\r
- else:\r
- print "#ERROR#: Active process tinyweb failed."\r
- return False\r
-\r
-def install_tinyweb():\r
- print "info: Install tinyweb"\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'tinyweb'), '/opt/home/developer/')\r
- SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/tinyweb")\r
-\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'cgi-getcookie'), '/opt/home/developer/')\r
- SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/cgi-getcookie")\r
-\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'cgi-getfield'), '/opt/home/developer/')\r
- SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/cgi-getfield")\r
-\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'libmongoose.so'), '/opt/home/developer/')\r
- SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/libmongoose.so")\r
-\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'echo.so'), '/opt/home/developer/')\r
- SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/echo.so")\r
-\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'server.pem'), '/opt/home/developer/')\r
- SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/server.pem")\r
- if DEV_ARCH == "arm":\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libssl.so.1.0.0 /opt/home/developer/libssl.so")\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")\r
- elif DEV_ARCH == "ia":\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libssl.so.1.0.0 /opt/home/developer/libssl.so")\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")\r
- elif DEV_ARCH == "aarch64":\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libssl.so.1.0.0 /opt/home/developer/libssl.so")\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")\r
- elif DEV_ARCH == "ia64":\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libssl.so.1.0.0 /opt/home/developer/libssl.so")\r
- SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")\r
-\r
-\r
-def check_stub():\r
- print "info: Check testkit-stub."\r
- result = SdbManager.sdbShell(DEVID, "ls /opt/home/developer/ | grep testkit-stub")\r
- if result and len(result) > 0:\r
- print "info: testkit-stub has been installed on device."\r
- kill_process("testkit-stub")\r
- install_stub()\r
-\r
-\r
-def install_stub():\r
- print "info: Install testkit-stub."\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'testkit-stub', DEV_ARCH, 'testkit-stub'), '/opt/home/developer/testkit-stub')\r
- SdbManager.sdbShell(DEVID, "chmod a+x /opt/home/developer/testkit-stub")\r
- SdbManager.sdbShell(DEVID, "chsmack -e \"User\" /opt/home/developer/testkit-stub")\r
-\r
-\r
-def check_testconfig():\r
- result = SdbManager.sdbShell(DEVID, '"cat ' + JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/tct-testconfig.ini') + ' | grep tct"')\r
- if result and len(result) > 0 and result.find('No such file or directory') == -1:\r
- print "info: testconfig has already been installed on device."\r
- else:\r
- install_testconfig()\r
-\r
-\r
-def install_testconfig():\r
- print "info: Install testconfig."\r
- if TIZENV.find('tizen_6.5') > -1:\r
- instPath = RESRC_DIR + os.sep + 'tct-testconfig' + os.sep + 'inst.py'\r
- SdbManager.hostCommand("python %s -s %s" % (instPath, DEVID))\r
- else:\r
- conf_pkg = LS(RESRC_DIR, "tct-testconfig")\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, conf_pkg), JOIN(DEVICE_SUITE_TARGET, 'tct/'))\r
- SdbManager.sdbShell(DEVID, 'unzip -uo ' + JOIN(DEVICE_SUITE_TARGET, 'tct/') + conf_pkg + ' -d ' + JOIN(DEVICE_SUITE_TARGET, 'tct/'))\r
- SdbManager.sdbShell(DEVID, JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/inst.sh'))\r
-\r
- result = SdbManager.sdbShell(DEVID, 'cat ' + JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/tct-testconfig.ini') + ' | grep tct')\r
-\r
- if result and len(result) > 0:\r
- print "info: Install testconfig successfully."\r
- else:\r
- print "#ERROR#: Failed to install testconfig, please check %s" % RESRC_DIR\r
- return False\r
-\r
- return True\r
-\r
-def install_behavior(profile_name):\r
- print "info: Install behavior tool."\r
-\r
- if not profile_name in ['wearable', 'mobile', 'tv', 'ivi']:\r
- print "#WARNING#: Invalid device profile value %s" % profile_name\r
- return False\r
-\r
- if TIZENV.find('tizen_6.5') > -1:\r
- RPMPKG = "tct-behavior-tests-6.5.zip"\r
- opt_rpm_path = PKGS_DIR + "s" + os.sep + profile_name + os.sep + RPMPKG\r
- local_rpm_path = PKGS_DIR + os.sep + profile_name + os.sep + RPMPKG\r
-\r
- install_rpm = None\r
- install_dest = None\r
- install_cmd = None\r
- if os.path.exists(opt_rpm_path):\r
- install_rpm = opt_rpm_path\r
- install_dest = PKGS_DIR + "s" + os.sep + profile_name + os.sep\r
- install_cmd = PKGS_DIR + "s" + os.sep + profile_name + os.sep + \\r
- 'opt' + os.sep + "tct-behavior-tests" + os.sep + "inst.py"\r
- elif os.path.exists(local_rpm_path):\r
- install_rpm = local_rpm_path\r
- install_dest = PKGS_DIR + os.sep + profile_name + os.sep\r
- install_cmd = PKGS_DIR + os.sep + profile_name + os.sep + \\r
- 'opt' + os.sep + "tct-behavior-tests" + os.sep + "inst.py"\r
-\r
- SdbManager.hostCommand("rm -rf %s" % install_dest + "opt/tct-behavior-tests")\r
- SdbManager.hostCommand("unzip -uo %s -d %s" % (install_rpm, install_dest))\r
- SdbManager.hostCommand("python %s -s %s" % (install_cmd, DEVID))\r
-\r
- print "info: Check tizen-web-ui-fw. Please wait..."\r
- check_uifw = SdbManager.sdbShell(DEVID, "ls /usr/share/ | grep tizen-web-ui-fw")\r
- if check_uifw and len(check_uifw) > 0:\r
- print "info: tizen-web-ui-fw has been installed on device."\r
- else:\r
- SdbManager.sdbShell(DEVID, '"mkdir -p /usr/share/tizen-web-ui-fw/"')\r
- SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, "tizen-web-ui-fw"), '/usr/share/tizen-web-ui-fw/')\r
- else:\r
- pass\r
-\r
- return True\r
-\r
-\r
-\r
-def update_tctconf_file():\r
- print "Updating TCT_CONFIG file"\r
- tct_config_old = "/opt/tools/TCT_CONFIG"\r
- tct_config_new = "/opt/tools/shell/tmp/%s/TCT_CONFIG"%DEVID\r
-\r
- if os.path.exists(tct_config_new):\r
- os.remove(tct_config_new)\r
-\r
- config_content = ""\r
- with open(tct_config_old, 'r') as f:\r
- config_content = f.readlines()\r
- f_new = open(tct_config_new, 'w')\r
-\r
- tmp = ""\r
- for line in config_content:\r
- if line.find("DEVICE_PHYSICAL_STORAGE_30")!=-1:\r
- tmp = getDevPhysicalStorage()\r
- if tmp is None:\r
- f_new.write(line)\r
- else:\r
- f_new.write("DEVICE_PHYSICAL_STORAGE_30="+tmp.strip()+"\n")\r
- elif line.find("DEVICE_ADMIN_USER_APPS_ROOT_30")!=-1:\r
- tmp = getDevAdminUserAppsRoot()\r
- if tmp is None:\r
- f_new.write(line)\r
- else:\r
- f_new.write("DEVICE_ADMIN_USER_APPS_ROOT_30="+tmp.strip()+"\n")\r
+#!/usr/bin/env python3
+
+"""Usage:
+ tct-config-device.py [--install [--deviceid <serial_no>]]
+ tct-config-device.py --purge [--deviceid <serial_no>]
+ tct-config-device.py --check [--deviceid <serial_no>][--procid <process_name>]
+ tct-config-device.py --bhtest <profile>
+
+Options:
+ -h, --help show this help message and exit
+ --install Install tct resources to TIZEN device,it can be omitted
+ --purge Clean up tct resources from TIZEN device
+ --check Check test resource on device
+ --bhtest Install tct behavior test
+ --deviceid Set the device serial number
+ --procid Set the check process name
+
+"""
+import os
+import sys
+import time
+import configparser
+import threading
+import subprocess
+
+
+from optparse import OptionParser
+from devicemanager import DeviceManager
+from sdbmanager import SdbManager
+
+JOIN = os.path.join
+EXISTS = os.path.exists
+DIRNAME = os.path.dirname
+BASENAME = os.path.basename
+ABSPATH = os.path.abspath
+SPLIT = os.path.split
+
+CURENT_DIR = SPLIT(DIRNAME(ABSPATH(__file__)))[0]
+
+TOOLS_DIR = JOIN(CURENT_DIR, "tools")
+RESRC_DIR = JOIN(CURENT_DIR, "resource")
+PKGS_DIR = JOIN(CURENT_DIR, "package")
+
+DEVID = ""
+
+TIZENV = "tizen_7.0"
+
+DLOG_CLEAR = "dlogutil -c"
+DLOG_UTIL = "sdb -s %s shell dlogutil -v time"
+
+TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
+tct_parser = configparser.ConfigParser()
+tct_parser.read(TCT_CONFIG_FILE)
+
+DEVICE_SUITE_TARGET_24 = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_24')
+DEVICE_SUITE_TARGET_30 = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
+DEVICE_EXECUTION_MODE_30 = tct_parser.get('DEVICE', 'DEVICE_EXECUTION_MODE_30')
+
+if TIZENV.find('tizen_7.0') > -1:
+ DEVICE_SUITE_TARGET = DEVICE_SUITE_TARGET_30
+else:
+ DEVICE_SUITE_TARGET = DEVICE_SUITE_TARGET_24
+
+def LS(root, file_name, extension=None):
+ import glob
+
+ file_path = ""
+ if extension:
+ file_path = JOIN(root, file_name) + "*." + extension
+ else:
+ file_path = JOIN(root, file_name) + "*"
+ files = glob.iglob(r'' + file_path + '')
+ for f in files:
+ return BASENAME(f)
+
+def get_device_arch():
+ global DEV_ARCH
+ #ARCHCMD = SDB_SERNO + " shell \"cat /etc/products.d/tizen.prod |grep \<arch\""
+ arch_cmd = "cat /etc/config/model-config.xml | grep tizen.org/feature/platform.core.cpu.arch"
+ #result example : <key name="tizen.org/feature/platform.core.cpu.arch" type="string">armv7</key>
+ result = SdbManager.sdbShell(DEVID, arch_cmd)
+ if result and len(result) > 0:
+ arch_str = result.split('\n')[0]
+ if arch_str and arch_str.find('armv') > -1:
+ DEV_ARCH = "arm"
+ print("info: [* Arch Type : arm *]")
+ elif arch_str and arch_str.find("aarch64") > -1:
+ DEV_ARCH = "aarch64"
+ print("info: [* Arch Type : aarch64 *]")
+ elif arch_str and arch_str.find('x86_64') > -1:
+ DEV_ARCH = "ia64"
+ print("info: [* Arch Type : ia64 *]")
+ elif arch_str and (arch_str.find("i686") > -1 or arch_str.find("x86") > -1 or arch_str.find("i386") > -1):
+ DEV_ARCH = "ia"
+ print("info: [* Arch Type : ia *]")
+ else:
+ print("info: [* Arch Type : None *]")
+ return False
+ return True
+ else:
+ print("#ERROR#: Failed to get device cpu_arch type")
+ return False
+
+
+def kill_process(process_name):
+ proc_cmd = "ps aux | grep " + process_name + " | grep -v grep | awk '{print $2}'"
+ result = SdbManager.sdbShell(DEVID, proc_cmd)
+ if result and len(result) > 0:
+ kill_cmd = "kill -9 " + str(result).strip() + " > /dev/null 2>&1"
+ SdbManager.sdbShell(DEVID, kill_cmd)
+ print("info: %s process has been killed" % process_name)
+ else:
+ print("info: No process of %s activated" % process_name)
+
+def remove_tinyweb():
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/server.pem > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/tinyweb > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/cgi-getcookie > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/cgi-getfield > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/libmongoose.so > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/echo.so > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/libssl.so > /dev/null 2>&1")
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/libcrypto.so > /dev/null 2>&1")
+
+def remove_stub():
+ SdbManager.sdbShell(DEVID, "rm -f /opt/home/developer/testkit-stub")
+
+
+def uninstall_testconfig():
+ if TIZENV.find('tizen_7.0') > -1:
+ inst_path = RESRC_DIR + os.sep + 'tct-testconfig' + os.sep + 'inst.py'
+ SdbManager.hostCommand("python %s -s %s -u" % (inst_path, DEVID))
+ else:
+ RPMPKG = LS(RESRC_DIR, "tct-testconfig")
+ if not RPMPKG:
+ sys.exit("#ERROR#: cannot found tct-testconfig.zip file in resource dir")
+ uninst_cmd = JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/inst.sh') + ' -u'
+ SdbManager.sdbShell(DEVID, uninst_cmd)
+ rm_cmd = 'rm -f ' + JOIN(DEVICE_SUITE_TARGET, 'tct/', RPMPKG)
+ SdbManager.sdbShell(DEVID, rm_cmd)
+
+
+def uninstall_behavior():
+ print("info: Uninstall behavior tool.")
+ if TIZENV.find('tizen_7.0') > -1:
+ pass
+ else:
+ uninst_cmd = JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-behavior-tests/inst.sh') + ' -u'
+ SdbManager.sdbShell(DEVID, uninst_cmd)
+
+
+def check_resource_dir():
+ print("info: check resource directory.")
+ if os.path.exists(RESRC_DIR):
+ SdbManager.sdbShell(DEVID, 'mkdir -p ' + JOIN(DEVICE_SUITE_TARGET, 'tct/'))
+ SdbManager.sdbShell(DEVID, 'mkdir -p ' + JOIN(DEVICE_SUITE_TARGET, 'Documents/'))
+ return True
+ else:
+ print("#WARNING#: The directory resource does not exists. Please copy test resources to %s " % RESRC_DIR)
+ return False
+
+def check_tinyweb():
+ print("info: Check tinyweb.")
+ result = SdbManager.sdbShell(DEVID, "ls /opt/home/developer/ | grep tinyweb")
+ if result and result.find('tinyweb'):
+ remove_tinyweb()
+ install_tinyweb()
+ launch_tinyweb()
+ else:
+ install_tinyweb()
+ launch_tinyweb()
+
+
+def port_manager():
+ print("info: Check the tinyweb port")
+ result = SdbManager.sdbShell('fuser -n tcp 80 8080 8081 8082 8083 8443')
+ if result and len(result) > 0:
+ check_port = SdbManager.sdbShell('su "netstat -nap |grep tinyweb"')
+ if len(check_port) > 0:
+ print("info: tinyweb on")
+ else:
+ print("info: Port is available")
+
+
+def launch_tinyweb():
+ dpath_cmd = "printenv PATH"
+ dpath = SdbManager.sdbShell(DEVID, dpath_cmd)
+
+ launch_cmd = 'sdb -s ' + DEVID + ' shell ' + '"env LD_LIBRARY_PATH=/opt/home/developer PATH=' + dpath.strip() + \
+ ':/opt/home/developer/ tinyweb -ssl_certificate /opt/home/developer/server.pem -document_root ' + \
+ JOIN(DEVICE_SUITE_TARGET, 'tct') + ' -listening_ports 80,8080,8081,8082,8083,8443s; sleep 3s" 0> /dev/null'
+
+ SdbManager.sdbCommand(launch_cmd, 10)
+
+ check_tinyweb_cmd = '\"ps aux | grep tinyweb | grep -v grep\"'
+ result = SdbManager.sdbShell(DEVID, check_tinyweb_cmd)
+ if result and result.find('tinyweb') > -1:
+ print("info: Active process tinyweb successfully.")
+ return True
+ else:
+ print("#ERROR#: Active process tinyweb failed.")
+ return False
+
+def install_tinyweb():
+ print("info: Install tinyweb")
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'tinyweb'), '/opt/home/developer/')
+ SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/tinyweb")
+
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'cgi-getcookie'), '/opt/home/developer/')
+ SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/cgi-getcookie")
+
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'cgi-getfield'), '/opt/home/developer/')
+ SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/cgi-getfield")
+
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'libmongoose.so'), '/opt/home/developer/')
+ SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/libmongoose.so")
+
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'echo.so'), '/opt/home/developer/')
+ SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/echo.so")
+
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'tinyweb', DEV_ARCH, 'server.pem'), '/opt/home/developer/')
+ SdbManager.sdbShell(DEVID, "chmod 777 /opt/home/developer/server.pem")
+ if DEV_ARCH == "arm":
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libssl.so.1.0.0 /opt/home/developer/libssl.so")
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")
+ elif DEV_ARCH == "ia":
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libssl.so.1.0.0 /opt/home/developer/libssl.so")
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")
+ elif DEV_ARCH == "aarch64":
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libssl.so.1.0.0 /opt/home/developer/libssl.so")
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")
+ elif DEV_ARCH == "ia64":
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libssl.so.1.0.0 /opt/home/developer/libssl.so")
+ SdbManager.sdbShell(DEVID, "ln -s /usr/lib64/libcrypto.so.1.0.0 /opt/home/developer/libcrypto.so")
+
+
+def check_stub():
+ print("info: Check testkit-stub.")
+ result = SdbManager.sdbShell(DEVID, "ls /opt/home/developer/ | grep testkit-stub")
+ if result and len(result) > 0:
+ print("info: testkit-stub has been installed on device.")
+ kill_process("testkit-stub")
+ install_stub()
+
+
+def install_stub():
+ print("info: Install testkit-stub.")
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, 'testkit-stub', DEV_ARCH, 'testkit-stub'), '/opt/home/developer/testkit-stub')
+ SdbManager.sdbShell(DEVID, "chmod a+x /opt/home/developer/testkit-stub")
+ SdbManager.sdbShell(DEVID, "chsmack -e \"User\" /opt/home/developer/testkit-stub")
+
+
+def check_testconfig():
+ result = SdbManager.sdbShell(DEVID, '"cat ' + JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/tct-testconfig.ini') + ' | grep tct"')
+ if result and len(result) > 0 and result.find('No such file or directory') == -1:
+ print("info: testconfig has already been installed on device.")
+ else:
+ install_testconfig()
+
+
+def install_testconfig():
+ print("info: Install testconfig.")
+ if TIZENV.find('tizen_7.0') > -1:
+ instPath = RESRC_DIR + os.sep + 'tct-testconfig' + os.sep + 'inst.py'
+ SdbManager.hostCommand("python %s -s %s" % (instPath, DEVID))
+ else:
+ conf_pkg = LS(RESRC_DIR, "tct-testconfig")
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, conf_pkg), JOIN(DEVICE_SUITE_TARGET, 'tct/'))
+ SdbManager.sdbShell(DEVID, 'unzip -uo ' + JOIN(DEVICE_SUITE_TARGET, 'tct/') + conf_pkg + ' -d ' + JOIN(DEVICE_SUITE_TARGET, 'tct/'))
+ SdbManager.sdbShell(DEVID, JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/inst.sh'))
+
+ result = SdbManager.sdbShell(DEVID, 'cat ' + JOIN(DEVICE_SUITE_TARGET, 'tct/opt/tct-testconfig/tct-testconfig.ini') + ' | grep tct')
+
+ if result and len(result) > 0:
+ print("info: Install testconfig successfully.")
+ else:
+ print("#ERROR#: Failed to install testconfig, please check %s" % RESRC_DIR)
+ return False
+
+ return True
+
+def install_behavior(profile_name):
+ print("info: Install behavior tool.")
+
+ if not profile_name in ['wearable', 'mobile', 'tv', 'ivi']:
+ print("#WARNING#: Invalid device profile value %s" % profile_name)
+ return False
+
+ if TIZENV.find('tizen_7.0') > -1:
+ RPMPKG = "tct-behavior-tests-7.0.zip"
+ opt_rpm_path = PKGS_DIR + "s" + os.sep + profile_name + os.sep + RPMPKG
+ local_rpm_path = PKGS_DIR + os.sep + profile_name + os.sep + RPMPKG
+
+ install_rpm = None
+ install_dest = None
+ install_cmd = None
+ if os.path.exists(opt_rpm_path):
+ install_rpm = opt_rpm_path
+ install_dest = PKGS_DIR + "s" + os.sep + profile_name + os.sep
+ install_cmd = PKGS_DIR + "s" + os.sep + profile_name + os.sep + \
+ 'opt' + os.sep + "tct-behavior-tests" + os.sep + "inst.py"
+ elif os.path.exists(local_rpm_path):
+ install_rpm = local_rpm_path
+ install_dest = PKGS_DIR + os.sep + profile_name + os.sep
+ install_cmd = PKGS_DIR + os.sep + profile_name + os.sep + \
+ 'opt' + os.sep + "tct-behavior-tests" + os.sep + "inst.py"
+
+ SdbManager.hostCommand("rm -rf %s" % install_dest + "opt/tct-behavior-tests")
+ SdbManager.hostCommand("unzip -uo %s -d %s" % (install_rpm, install_dest))
+ SdbManager.hostCommand("python %s -s %s" % (install_cmd, DEVID))
+
+ print("info: Check tizen-web-ui-fw. Please wait...")
+ check_uifw = SdbManager.sdbShell(DEVID, "ls /usr/share/ | grep tizen-web-ui-fw")
+ if check_uifw and len(check_uifw) > 0:
+ print("info: tizen-web-ui-fw has been installed on device.")
+ else:
+ SdbManager.sdbShell(DEVID, '"mkdir -p /usr/share/tizen-web-ui-fw/"')
+ SdbManager.sdbPush(DEVID, JOIN(RESRC_DIR, "tizen-web-ui-fw"), '/usr/share/tizen-web-ui-fw/')
+ else:
+ pass
+
+ return True
+
+
+
+def update_tctconf_file():
+ print("Updating TCT_CONFIG file")
+ tct_config_old = "/opt/tools/TCT_CONFIG"
+ tct_config_new = "/opt/tools/shell/tmp/%s/TCT_CONFIG"%DEVID
+
+ if os.path.exists(tct_config_new):
+ os.remove(tct_config_new)
+
+ config_content = ""
+ with open(tct_config_old, 'r') as f:
+ config_content = f.readlines()
+ f_new = open(tct_config_new, 'w')
+
+ tmp = ""
+ for line in config_content:
+ if line.find("DEVICE_PHYSICAL_STORAGE_30")!=-1:
+ tmp = getDevPhysicalStorage()
+ if tmp is None:
+ f_new.write(line)
+ else:
+ f_new.write("DEVICE_PHYSICAL_STORAGE_30="+tmp.strip()+"\n")
+ elif line.find("DEVICE_ADMIN_USER_APPS_ROOT_30")!=-1:
+ tmp = getDevAdminUserAppsRoot()
+ if tmp is None:
+ f_new.write(line)
+ else:
+ f_new.write("DEVICE_ADMIN_USER_APPS_ROOT_30="+tmp.strip()+"\n")
elif line.find("DEVICE_STORAGE_30")!=-1:
tmp = getDevStorage()
if tmp is None:
f_new.write(line)
else:
f_new.write("DEVICE_STORAGE_30="+tmp.strip()+"\n")
- else:\r
- f_new.write(line)\r
- f_new.close()\r
-\r
-def getDevPhysicalStorage():\r
- devphysicalstorage_cmd = "tzplatform-get -u owner TZ_USER_CONTENT"\r
- print devphysicalstorage_cmd\r
- ret = SdbManager.sdbShell(DEVID, devphysicalstorage_cmd)\r
- print ret\r
- if ret is None:\r
- print "Cannot get info from cmd : %s" %devphysicalstorage_cmd\r
- return None\r
- else:\r
- ret = ret.replace('/opt/usr/','/')\r
- print "DEVICE_PHYSICAL_STORAGE_30 : %s" %(ret.split('=')[1])\r
- return ret.split('=')[1]\r
-\r
-def getDevAdminUserAppsRoot():\r
- devadminuserappsroot_cmd = "tzplatform-get TZ_SYS_RW_APP"\r
- ret = SdbManager.sdbShell(DEVID, devadminuserappsroot_cmd)\r
- if ret is None:\r
- print "Cannot get info from cmd : %s" %devadminuserappsroot_cmd\r
- return None\r
- else:\r
- print "DEVCIE_ADMIN_USER_APPS_ROOT_30 : %s" %(ret.split('=')[1])\r
- return ret.split('=')[1]\r
-\r
+ else:
+ f_new.write(line)
+ f_new.close()
+
+def getDevPhysicalStorage():
+ devphysicalstorage_cmd = "tzplatform-get -u owner TZ_USER_CONTENT"
+ print(devphysicalstorage_cmd)
+ ret = SdbManager.sdbShell(DEVID, devphysicalstorage_cmd)
+ print(ret)
+ if ret is None:
+ print("Cannot get info from cmd : %s" %devphysicalstorage_cmd)
+ return None
+ else:
+ ret = ret.replace('/opt/usr/','/')
+ print("DEVICE_PHYSICAL_STORAGE_30 : %s" %(ret.split('=')[1]))
+ return ret.split('=')[1]
+
+def getDevAdminUserAppsRoot():
+ devadminuserappsroot_cmd = "tzplatform-get TZ_SYS_RW_APP"
+ ret = SdbManager.sdbShell(DEVID, devadminuserappsroot_cmd)
+ if ret is None:
+ print("Cannot get info from cmd : %s" %devadminuserappsroot_cmd)
+ return None
+ else:
+ print("DEVCIE_ADMIN_USER_APPS_ROOT_30 : %s" %(ret.split('=')[1]))
+ return ret.split('=')[1]
+
def getDevStorage():
devstorage_cmd = "tzplatform-get -u owner TZ_USER_CONTENT"
- print devstorage_cmd
+ print(devstorage_cmd)
ret = SdbManager.sdbShell(DEVID, devstorage_cmd)
- print ret
+ print(ret)
if ret is None:
- print "Cannot get info from cmd : %s" %devstorage_cmd
+ print("Cannot get info from cmd : %s" %devstorage_cmd)
return None
else:
- print "DEVICE_STORAGE_30 : %s" %(ret.split('=')[1])
+ print("DEVICE_STORAGE_30 : %s" %(ret.split('=')[1]))
return ret.split('=')[1]
-def push_tctconf_file():\r
- updated_tct_conf_local = "/opt/tools/shell/tmp/%s/TCT_CONFIG"%DEVID\r
- remote = DEVICE_SUITE_TARGET_30\r
- if not SdbManager.sdbPush(DEVID, updated_tct_conf_local, remote):\r
- print "#ERROR#: TCT_CONFIG file push failed"\r
- return False\r
- return True\r
-\r
-\r
-def debug_trace(cmd, logfile):\r
- global debug_flag, metux\r
-\r
- wbuffile = file(logfile, "a+")\r
- exit_code = None\r
- proc = subprocess.Popen(args=cmd,\r
- shell=True,\r
- stdout=wbuffile,\r
- stderr=None)\r
- while True:\r
- exit_code = proc.poll()\r
- if exit_code is not None:\r
- break\r
- time.sleep(0.6)\r
- metux.acquire()\r
- proc_flag = debug_flag\r
- metux.release()\r
- if not proc_flag:\r
- break\r
- wbuffile.close()\r
- SdbManager.killall(proc.pid)\r
-\r
-\r
-def start_debug(dlog_file):\r
- global debug_flag, metux, dlog_thread\r
- debug_flag = True\r
- metux = threading.Lock()\r
- clear_cmd = DLOG_CLEAR\r
- SdbManager.sdbShell(DEVID, clear_cmd)\r
-\r
- dlog_cmd = DLOG_UTIL % DEVID\r
- dlog_thread = threading.Thread(target=debug_trace, args=(dlog_cmd, dlog_file))\r
- dlog_thread.setDaemon(True)\r
- dlog_thread.start()\r
-\r
-\r
-def stop_debug():\r
- global debug_flag, metux\r
- metux.acquire()\r
- debug_flag = False\r
- metux.release()\r
- dlog_thread.join()\r
-\r
-\r
-def runProcess():\r
- if options.purge:\r
- print "[ Uninstall test resource on device. Please wait...]"\r
- uninstall_testconfig()\r
- uninstall_behavior()\r
- remove_tinyweb()\r
- kill_process("tinyweb")\r
- kill_process("testkit-stub")\r
- remove_stub()\r
- print "Clean the tct packages in device successfully."\r
-\r
- elif options.check:\r
- check_resource_dir()\r
- print "[ Check test resource on device. Please wait...]"\r
- if options.process == 'tinyweb':\r
- check_tinyweb()\r
- elif options.process == 'testkit-stub':\r
- check_stub()\r
- elif options.process == 'testconfig':\r
- check_testconfig()\r
- else:\r
- check_tinyweb()\r
- check_stub()\r
- check_testconfig()\r
-\r
- print "Check finished."\r
-\r
- elif options.bhtest:\r
- check_resource_dir()\r
-\r
- uninstall_behavior()\r
- print "[ Install tct behavior tool on device. Please wait...]"\r
- install_behavior(options.bhtest)\r
- print "Installation of tct behavior on device completed."\r
-\r
- else:\r
- check_resource_dir()\r
- print "[ Clean old test resource on device. Please wait...]"\r
- if options.process == 'tinyweb':\r
- kill_process("tinyweb")\r
- remove_tinyweb()\r
- elif options.process == 'testkit-stub':\r
- kill_process("testkit-stub")\r
- remove_stub()\r
- elif options.process == 'testconfig':\r
- uninstall_testconfig()\r
- else:\r
- remove_tinyweb()\r
- kill_process("testkit-stub")\r
- remove_stub()\r
- uninstall_testconfig()\r
-\r
- print "Clean the tct packages in device successfully."\r
- print "[ Install test resource on device. Please wait...]"\r
- if options.process == 'tinyweb':\r
- install_tinyweb()\r
- launch_tinyweb()\r
- elif options.process == 'testkit-stub':\r
- install_stub()\r
- elif options.process == 'testconfig':\r
- install_testconfig()\r
- else:\r
- install_testconfig()\r
- install_stub()\r
- install_tinyweb()\r
- launch_tinyweb()\r
-\r
-\r
- print "All of installation process on device completed."\r
-\r
-\r
-if __name__ == "__main__":\r
-\r
- parser = OptionParser()\r
- parser.add_option(\r
- "--install", dest="install", action="store_true", default=False,\r
- help="Install tct resources to TIZEN device,it can be omitted")\r
- parser.add_option(\r
- "--purge", dest="purge", action="store_true", default=False,\r
- help="Clean up tct resources from TIZEN device")\r
- parser.add_option(\r
- "--check", dest="check", action="store_true", default=False,\r
- help="Check test resource on device")\r
- parser.add_option(\r
- "--deviceid", dest="deviceid", action="store",\r
- help="Set the device serial number")\r
- parser.add_option(\r
- "--procid", dest="process", action="store",\r
- help="Set the process id for checking")\r
- parser.add_option(\r
- "--bhtest", dest="bhtest", action="store",\r
- help="Install behavior test tool to device")\r
-\r
- (options, args) = parser.parse_args()\r
-\r
- devinst = DeviceManager.getInstance()\r
- if options.deviceid:\r
- if devinst.isDeviceAvailable(options.deviceid):\r
- DEVID = options.deviceid\r
- else:\r
- sys.exit("#ERROR#: The '%s' device Id exists error" % options.deviceid)\r
- else:\r
- if devinst.getDeviceSize() > 1 or devinst.getDeviceSize() == 0:\r
- sys.exit("#ERROR#: %s devices connected or device not connected" % str(devinst.getDeviceSize()))\r
- else:\r
- DEVID = devinst.getSdbDeviceList()[0].getDeviceId()\r
-\r
- print "[========== start tct-config-device : %s ==========]" % DEVID\r
- dev_temp_dir = '/opt/tools/shell/tmp/%s/' % DEVID\r
- if not os.path.isdir(dev_temp_dir):\r
+def push_tctconf_file():
+ updated_tct_conf_local = "/opt/tools/shell/tmp/%s/TCT_CONFIG"%DEVID
+ remote = DEVICE_SUITE_TARGET_30
+ if not SdbManager.sdbPush(DEVID, updated_tct_conf_local, remote):
+ print("#ERROR#: TCT_CONFIG file push failed")
+ return False
+ return True
+
+
+def debug_trace(cmd, logfile):
+ global debug_flag, metux
+
+ wbuffile = file(logfile, "a+")
+ exit_code = None
+ proc = subprocess.Popen(args=cmd,
+ shell=True,
+ stdout=wbuffile,
+ stderr=None)
+ while True:
+ exit_code = proc.poll()
+ if exit_code is not None:
+ break
+ time.sleep(0.6)
+ metux.acquire()
+ proc_flag = debug_flag
+ metux.release()
+ if not proc_flag:
+ break
+ wbuffile.close()
+ SdbManager.killall(proc.pid)
+
+
+def start_debug(dlog_file):
+ global debug_flag, metux, dlog_thread
+ debug_flag = True
+ metux = threading.Lock()
+ clear_cmd = DLOG_CLEAR
+ SdbManager.sdbShell(DEVID, clear_cmd)
+
+ dlog_cmd = DLOG_UTIL % DEVID
+ dlog_thread = threading.Thread(target=debug_trace, args=(dlog_cmd, dlog_file))
+ dlog_thread.setDaemon(True)
+ dlog_thread.start()
+
+
+def stop_debug():
+ global debug_flag, metux
+ metux.acquire()
+ debug_flag = False
+ metux.release()
+ dlog_thread.join()
+
+
+def runProcess():
+ if options.purge:
+ print("[ Uninstall test resource on device. Please wait...]")
+ uninstall_testconfig()
+ uninstall_behavior()
+ remove_tinyweb()
+ kill_process("tinyweb")
+ kill_process("testkit-stub")
+ remove_stub()
+ print("Clean the tct packages in device successfully.")
+
+ elif options.check:
+ check_resource_dir()
+ print("[ Check test resource on device. Please wait...]")
+ if options.process == 'tinyweb':
+ check_tinyweb()
+ elif options.process == 'testkit-stub':
+ check_stub()
+ elif options.process == 'testconfig':
+ check_testconfig()
+ else:
+ check_tinyweb()
+ check_stub()
+ check_testconfig()
+
+ print("Check finished.")
+
+ elif options.bhtest:
+ check_resource_dir()
+
+ uninstall_behavior()
+ print("[ Install tct behavior tool on device. Please wait...]")
+ install_behavior(options.bhtest)
+ print("Installation of tct behavior on device completed.")
+
+ else:
+ check_resource_dir()
+ print("[ Clean old test resource on device. Please wait...]")
+ if options.process == 'tinyweb':
+ kill_process("tinyweb")
+ remove_tinyweb()
+ elif options.process == 'testkit-stub':
+ kill_process("testkit-stub")
+ remove_stub()
+ elif options.process == 'testconfig':
+ uninstall_testconfig()
+ else:
+ remove_tinyweb()
+ kill_process("testkit-stub")
+ remove_stub()
+ uninstall_testconfig()
+
+ print("Clean the tct packages in device successfully.")
+ print("[ Install test resource on device. Please wait...]")
+ if options.process == 'tinyweb':
+ install_tinyweb()
+ launch_tinyweb()
+ elif options.process == 'testkit-stub':
+ install_stub()
+ elif options.process == 'testconfig':
+ install_testconfig()
+ else:
+ install_testconfig()
+ install_stub()
+ install_tinyweb()
+ launch_tinyweb()
+
+
+ print("All of installation process on device completed.")
+
+
+if __name__ == "__main__":
+
+ parser = OptionParser()
+ parser.add_option(
+ "--install", dest="install", action="store_true", default=False,
+ help="Install tct resources to TIZEN device,it can be omitted")
+ parser.add_option(
+ "--purge", dest="purge", action="store_true", default=False,
+ help="Clean up tct resources from TIZEN device")
+ parser.add_option(
+ "--check", dest="check", action="store_true", default=False,
+ help="Check test resource on device")
+ parser.add_option(
+ "--deviceid", dest="deviceid", action="store",
+ help="Set the device serial number")
+ parser.add_option(
+ "--procid", dest="process", action="store",
+ help="Set the process id for checking")
+ parser.add_option(
+ "--bhtest", dest="bhtest", action="store",
+ help="Install behavior test tool to device")
+
+ (options, args) = parser.parse_args()
+
+ devinst = DeviceManager.getInstance()
+ if options.deviceid:
+ if devinst.isDeviceAvailable(options.deviceid):
+ DEVID = options.deviceid
+ else:
+ sys.exit("#ERROR#: The '%s' device Id exists error" % options.deviceid)
+ else:
+ if devinst.getDeviceSize() > 1 or devinst.getDeviceSize() == 0:
+ sys.exit("#ERROR#: %s devices connected or device not connected" % str(devinst.getDeviceSize()))
+ else:
+ DEVID = devinst.getSdbDeviceList()[0].getDeviceId()
+
+ print("[========== start tct-config-device : %s ==========]" % DEVID)
+ dev_temp_dir = '/opt/tools/shell/tmp/%s/' % DEVID
+ if not os.path.isdir(dev_temp_dir):
os.makedirs(dev_temp_dir)
- DLOG_SAVE_PATH = '/opt/tools/shell/tmp/%s/conf_dev_%s.dlog'\r
- if options.process is None:\r
- DLOG_SAVE_PATH = DLOG_SAVE_PATH % (DEVID, 'all')\r
- else:\r
- DLOG_SAVE_PATH = DLOG_SAVE_PATH % (DEVID, options.process)\r
-\r
- #start_debug(DLOG_SAVE_PATH)\r
-\r
- if not SdbManager.sdbRootOn(DEVID):\r
- sys.exit(-1)\r
-\r
- SdbManager.sdbSetDate(DEVID)\r
-\r
- update_tctconf_file()\r
- if not get_device_arch() or not push_tctconf_file():\r
- sys.exit(0)\r
-\r
- runProcess()\r
- #stop_debug()\r
- print "[========== end tct-config-device : %s ==========]" % DEVID\r
-\r
+ DLOG_SAVE_PATH = '/opt/tools/shell/tmp/%s/conf_dev_%s.dlog'
+ if options.process is None:
+ DLOG_SAVE_PATH = DLOG_SAVE_PATH % (DEVID, 'all')
+ else:
+ DLOG_SAVE_PATH = DLOG_SAVE_PATH % (DEVID, options.process)
+
+ #start_debug(DLOG_SAVE_PATH)
+
+ if not SdbManager.sdbRootOn(DEVID):
+ sys.exit(-1)
+
+ SdbManager.sdbSetDate(DEVID)
+
+ update_tctconf_file()
+ if not get_device_arch() or not push_tctconf_file():
+ sys.exit(0)
+
+ runProcess()
+ #stop_debug()
+ print("[========== end tct-config-device : %s ==========]" % DEVID)
+
-# -*- coding:utf-8 -*-
+#!/usr/bin/env python3
import os
import sys
import platform
def setCurrentPath(self):
self.CURRENT_SOURCE_BASE_PATH = os.getcwd() + self.sep
self.CURRENT_TARGET_BASE_PATH = self.TARGET_BASE_PATH
- print("current source base path =" + self.CURRENT_SOURCE_BASE_PATH)
- print("current target base path =" + self.CURRENT_TARGET_BASE_PATH)
+ print(("current source base path =" + self.CURRENT_SOURCE_BASE_PATH))
+ print(("current target base path =" + self.CURRENT_TARGET_BASE_PATH))
def cpDoc(self):
self.cpDir(self.CURRENT_SOURCE_BASE_PATH + self.SOURCE_DOC_PATH,
def cpFile(self, src, target):
if (not os.path.isfile(src)):
- print(src + " is not a file")
+ print((src + " is not a file"))
return
path = os.path.dirname(target)
if (not os.path.isdir(path)):
def cpDir(self, src, target, name):
if (os.path.isdir(src) and not os.path.exists(target)):
- print("copy " + name + " dir start")
+ print(("copy " + name + " dir start"))
shutil.copytree(src, target)
- print("copy " + name + " dir finish")
+ print(("copy " + name + " dir finish"))
else:
if (not os.path.isdir(src)):
- print("source " + name + " path is not a dir")
+ print(("source " + name + " path is not a dir"))
if (os.path.exists(target)):
- print ("target " + name + " path is exists")
+ print(("target " + name + " path is exists"))
try:
shutil.rmtree(target, onerror=self.del_rw)
- except Exception, data:
- print Exception, ":", data
+ except Exception as data:
+ print(Exception, ":", data)
- print ("target " + name + " dir destroyed")
+ print(("target " + name + " dir destroyed"))
try:
shutil.copytree(src, target)
- except Exception, data:
- print Exception, ":", data
- print("copy " + name + " dir finish")
+ except Exception as data:
+ print(Exception, ":", data)
+ print(("copy " + name + " dir finish"))
def clear(self):
self.setCurrentPath()
try:
shutil.rmtree(self.CURRENT_TARGET_BASE_PATH, onerror=self.del_rw)
- except Exception, data:
- print Exception, ":", data
+ except Exception as data:
+ print(Exception, ":", data)
def makeResult(self):
+ mgr_folder = os.path.join(self.CURRENT_TARGET_BASE_PATH, \
+ self.tizenV + "/manager")
mgr_result_folder = os.path.join(self.CURRENT_TARGET_BASE_PATH, \
self.tizenV + "/manager/result")
shell_result_folder = os.path.join(self.CURRENT_TARGET_BASE_PATH, \
self.tizenV + "/shell/result")
+ if not os.path.isdir(mgr_folder):
+ os.makedirs(mgr_folder)
+ if (platform.system() != "Windows"):
+ os.chmod(mgr_folder, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
+
if not os.path.isdir(mgr_result_folder):
os.makedirs(mgr_result_folder)
else:
(options, args) = parser.parse_args()
if options.tizenV is None:
- print "[ Error : input your tizen version ]"
+ print("[ Error : input your tizen version ]")
sys.exit(1)
if (options.install):
-# -*- coding:utf-8 -*-
+#!/usr/bin/env python3
import os
import sys
import shutil
msg += "a directory."
else:
msg += "something else."
- print msg
+ print (msg)
tar.extractall()
tar.close()
-#!/usr/bin/python
+#!/usr/bin/python3
#
# Copyright (C) 2012 Intel Corporation
#
-#!/usr/bin/python
+#!/usr/bin/python3
#
# Copyright (C) 2012 Intel Corporation
#
-#!/usr/bin/python
+#!/usr/bin/python3
import queue
from multiprocessing.managers import BaseManager
-#!/usr/bin/python
+#!/usr/bin/python3
import time
from multiprocessing import Process
-#!/usr/bin/python
+#!/usr/bin/python3
from multiprocessing import Queue
from .shellguider import Guider
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import re
from .constants import Constants
autocnt = manualcnt = 0
test_xml_temp = etree.parse(test_file)
tc_exist = False
- for test_xml_temp_suite in test_xml_temp.getiterator('suite'):
+ for test_xml_temp_suite in test_xml_temp.iter('suite'):
suite_name = test_xml_temp_suite.get('name')
suite_launcher = test_xml_temp_suite.get('launcher')
suite_category = test_xml_temp_suite.get('category')
autocnt = manualcnt = 0
- for tset in test_xml_temp_suite.getiterator('set'):
+ for tset in test_xml_temp_suite.iter('set'):
set_autocnt, set_manualcnt, tcCheck = \
_read_xml_tcInfo(tset, tc_name)
autocnt += set_autocnt
def _read_xml_tcInfo(tset, tc_name):
set_autocnt = set_manualcnt = 0
tcCheck = False
- for tcase in tset.getiterator('testcase'):
+ for tcase in tset.iter('testcase'):
tcId = tcase.get('id')
exetype = tcase.get('execution_type')
if exetype == "auto":
-#!/usr/bin/python
+#!/usr/bin/python3
import time
-#!/usr/bin/python
+#!/usr/bin/python3
#
# Copyright (C) 2012 Intel Corporation
#
#show all available suites
def _show_available_suites(option, opt_str, value, parser):
- print "Test Suites:...\n"
+ print("Test Suites:...\n")
os.chdir("/opt/tct/")
for t_version in glob.glob("tizen*"):
- print "Tizen Version : %s" % t_version
+ print("Tizen Version : %s" % t_version)
package_dir = os.path.join(os.path.abspath(t_version), 'packages')
if not os.path.isdir(package_dir):
continue
for profile in glob.glob("*"):
if profile == 'pkg_infos':
continue
- print " profile : %s" % profile
+ print(" profile : %s" % profile)
os.chdir(os.path.abspath(profile))
for files in glob.glob("*.zip"):
- print " " + files[:-4]
+ print(" " + files[:-4])
os.chdir('../')
os.chdir('../../')
sys.exit(1)
def _print_planfolder(option, opt_str, value, parser):
- print "Plan folder: %s" % Constants.TCT_PLAN_FOLDER
+ print("Plan folder: %s" % Constants.TCT_PLAN_FOLDER)
os.system("tree %s" % Constants.TCT_PLAN_FOLDER)
sys.exit(1)
1) run command 'tct-plan-generator', it might not be able to locate related module, run command 'export PYTHONPATH=/usr/lib/python2.7/site-packages' to resolve this issue"
def print_usage(self):
- print self.USAGE
+ print(self.USAGE)
def parse_options(self, argv):
option_list = [
(self.options.tizenversion[0] is not None):
return self.options.tizenversion[0]
else:
- print "Error: Please specify Tizen version with [--tizen-version] option"
+ print("Error: Please specify Tizen version with [--tizen-version] option")
sys.exit(1)
def get_output(self):
-#!/usr/bin/python
+#!/usr/bin/python3
#
# Copyright (C) 2012 Intel Corporation
# This program is free software; you can redistribute it and/or
os.chdir(repo)
for files in glob.glob("*" + match + "*"):
- print "Matched File name: %s" % str(os.path.abspath(files))
+ print("Matched File name: %s" % str(os.path.abspath(files)))
if (unmatch is not None) and (re.search(unmatch, \
str(files))):
- print "File %s is skipped with unmatch regex %s" \
- % (str(files), unmatch)
+ print("File %s is skipped with unmatch regex %s" \
+ % (str(files), unmatch))
else:
raw_paths.append(os.path.join(repo, str(files)))
launcher, category, auto, manual)
self.suites[suite.name] = suite
Constants.clean_unzip_file()
- except Exception, e:
- print "[ Error happen when reading the local repository," + \
- " error: %s ]\n" % e
+ except Exception as e:
+ print("[ Error happen when reading the local repository," + \
+ " error: %s ]\n" % e)
def _chooseProfile(self, path_suites):
suite_profiles = {}
suite_profiles[suiteName] = suiteProfile[0]
continue
- print "\nMultiple profiles for [%s] \
+ print("\nMultiple profiles for [%s] \
:\n----------------------------------------------" \
- % suite_name
+ % suite_name)
for profile_i in suiteProfile:
- print " - %s" % profile_i
+ print(" - %s" % profile_i)
suite_profile = None
while not suite_profile in suiteProfile:
autocnt = manualcnt = 0
test_xml_temp = etree.parse(test_file)
- for test_xml_temp_suite in test_xml_temp.getiterator('suite'):
+ for test_xml_temp_suite in test_xml_temp.iter('suite'):
suite_launcher = test_xml_temp_suite.get('launcher')
suite_category = test_xml_temp_suite.get('category')
autocnt = manualcnt = 0
- for tset in test_xml_temp_suite.getiterator('set'):
+ for tset in test_xml_temp_suite.iter('set'):
set_autocnt, set_manualcnt = self.__get_set_casecnt(tset)
autocnt += set_autocnt
manualcnt += set_manualcnt
def __get_set_casecnt(self, tset):
set_autocnt = set_manualcnt = 0
- for tcase in tset.getiterator('testcase'):
+ for tcase in tset.iter('testcase'):
exetype = tcase.get('execution_type')
if exetype == "auto":
set_autocnt += 1
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import threading
-#!/usr/bin/python
+#!/usr/bin/python3
from xml.etree import ElementTree
import os
-#!/usr/bin/python
+#!/usr/bin/python3
import subprocess
import time
@staticmethod
def recoveryDevice(_tizenV, _deviceid):
if _tizenV:
- tinycmd = "python " + Constants.DEVICE_HEALTH_CMD % _tizenV + \
+ tinycmd = "python3 " + Constants.DEVICE_HEALTH_CMD % _tizenV + \
" --check --proc=tinyweb --deviceid=" + _deviceid
- stubcmd = "python " + Constants.DEVICE_HEALTH_CMD % _tizenV + \
+ stubcmd = "python3 " + Constants.DEVICE_HEALTH_CMD % _tizenV + \
" --check --proc=testkit-stub --deviceid=" + _deviceid
outLog, errLog = SdbManager.sdbCommand(tinycmd)
if errLog: LOGGER.error(str(errLog))
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import configparser
-#!/usr/bin/python
+#!/usr/bin/python3
import shutil
import os
-#!/usr/bin/python
+#!/usr/bin/python3
import threading
import time
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import sys
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import configparser
from multiprocessing import Process
-#!/usr/bin/python
+#!/usr/bin/python3
import threading
import subprocess
-# -*- coding:utf-8 -*-
+#!/usr/bin/env python3
import os
import platform
import shutil
if (not os.path.isdir(src)):
print("source " + name + " path is not a dir")
if (os.path.exists(target)):
- print ("target " + name + " path is exists")
+ print("target " + name + " path is exists")
try:
shutil.rmtree(target, onerror=self.del_rw)
- except Exception, data:
- print Exception, ":", data
+ except Exception as data:
+ print(Exception, ":", data)
- print ("target " + name + " dir destroyed")
+ print("target " + name + " dir destroyed")
try:
shutil.copytree(src, target)
- except Exception, data:
- print Exception, ":", data
+ except Exception as data:
+ print(Exception, ":", data)
print("copy " + name + " dir finish")
def clear(self):
self.setCurrentPath()
try:
shutil.rmtree(self.CURRENT_TARGET_BASE_PATH, onerror=self.del_rw)
- except Exception, data:
- print Exception, ":", data
+ except Exception as data:
+ print(Exception, ":", data)
def cp(self):
self.setCurrentPath()
LOCATION='/home/owner/share'
# Change the destination of the resource folder(absolute path).
+# Update for syntax issue(2022.06.02).
DESTINATION_MOBILE='/home/owner/media'
DESTINATION_TV='/home/owner/content'
if [ "$1" == "-i" ]
then
- for value in "${FILE_LIST[@]}";do
+ for value in "${FILE_LIST[@]}";do
cp $LOCATION/$value $DESTINATION
done
- for value in "${DIR_LIST[@]}";do
+ for value in "${DIR_LIST[@]}";do
cp -R $LOCATION/$value $DESTINATION
done
elif [ "$1" == "-u" ]
then
- for value in "${FILE_LIST[@]}";do
+ for value in "${FILE_LIST[@]}";do
rm $DESTINATION/$value
done
for value in "${DIR_LIST[@]}";do
LOCATION='/home/owner/share'
# Change the destination of the resource folder(absolute path).
+# Update for syntax issue(2022.06.02).
DESTINATION_MOBILE='/home/owner/media'
DESTINATION_TV='/home/owner/content'
if [ "$1" == "-i" ]
then
- for value in "${FILE_LIST[@]}";do
+ for value in "${FILE_LIST[@]}";do
cp $LOCATION/$value $DESTINATION
done
- for value in "${DIR_LIST[@]}";do
+ for value in "${DIR_LIST[@]}";do
cp -R $LOCATION/$value $DESTINATION
done
elif [ "$1" == "-u" ]
then
- for value in "${FILE_LIST[@]}";do
+ for value in "${FILE_LIST[@]}";do
rm $DESTINATION/$value
done
for value in "${DIR_LIST[@]}";do
import sys
import subprocess
import string
-import ConfigParser
+import configparser
from optparse import OptionParser, make_option
TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
-tct_parser = ConfigParser.ConfigParser()
+tct_parser = configparser.ConfigParser()
tct_parser.read(TCT_CONFIG_FILE)
DEVICE_SUITE_TARGET_30 = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
def doCMD(cmd):
# Do not need handle timeout in this short script, let tool do it
- print "-->> \"%s\"" % cmd
+ print ("-->> \"%s\"" % cmd)
output = []
cmd_return_code = 1
cmd_proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
- output_line = cmd_proc.stdout.readline().strip("\r\n")
+ output_line = cmd_proc.stdout.readline().decode('utf-8').strip("\r\n")
cmd_return_code = cmd_proc.poll()
if output_line == '' and cmd_return_code != None:
break
for file in ['preconfigure.json', 'tests.xml', 'tct-testconfig.ini', 'portconfigure.json', 'TC_Config.txt']:
if not doRemoteCopy(SCRIPT_DIR + '/' + file, "%s/%s" % (PKG_SRC_DIR, file)):
action_status = False
- print "#############################################################################################################################################"
+ print ("#############################################################################################################################################")
doRemoteCopy(RES_DIR_PATH + '/' + 'capability.xml', "%s/%s" % (RES_SRC_DIR, 'capability.xml'))
doRemoteCopy(RES_DIR_PATH + '/' + 'buildinfo.xml', "%s/%s" % (RES_SRC_DIR, 'buildinfo.xml'))
#(return_code, output) = doRemoteCMD("touch %s/%s" % (RES_SRC_DIR, 'buildinfo.xml'))
"-a", dest="user", action="store", help="User name")
global PARAMETERS
(PARAMETERS, args) = opts_parser.parse_args()
- except Exception, e:
- print "Got wrong option: %s, exit ..." % e
+ except Exception as e:
+ print ("Got wrong option: %s, exit ...") % e
sys.exit(1)
if not PARAMETERS.user:
PARAMETERS.mode = "SSH"
if not PARAMETERS.device:
- print "No device provided"
+ print ("No device provided")
sys.exit(1)
user_info = getUSERID()
userid = user_info[1][0]
XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
else:
- print "[Error] cmd commands error : %s"%str(user_info[1])
+ print ("[Error] cmd commands error : %s"%str(user_info[1]))
sys.exit(1)
if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
- print "-i and -u are conflict"
+ print ("-i and -u are conflict")
sys.exit(1)
if PARAMETERS.buninstpkg:
def is_binary(filename):
with open(filename, 'rb') as f:
for block in f:
- if '\0' in block:
+ if b'\0' in block:
return True
return False
# pack tv package
- os.system(LINUX_PERMISSION+' python pack.py '+'all')
- os.system(LINUX_PERMISSION+' python pack.py '+'manual NUI')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'all')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'manual NUI')
# Copy mobile package folder to tv package.
# set tv_pkg_info.xml
# pack wearable package
- os.system(LINUX_PERMISSION+' python pack.py '+'all')
- os.system(LINUX_PERMISSION+' python pack.py '+'auto ElmSharpWearable')
- os.system(LINUX_PERMISSION+' python pack.py '+'manual ElmSharpWearable')
- os.system(LINUX_PERMISSION+' python pack.py '+'auto NUI.Wearable')
- os.system(LINUX_PERMISSION+' python pack.py '+'manual NUI.Wearable')
- os.system(LINUX_PERMISSION+' python pack.py '+'auto WatchfaceComplication')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'all')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'auto ElmSharpWearable')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'manual ElmSharpWearable')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'auto NUI.Wearable')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'manual NUI.Wearable')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'auto WatchfaceComplication')
# Copy mobile package folder to wearable package.
# set wearable_pkg_info.xml
os.rename('../../release/csharp-tct_7.0_dotnet/csharp-tct_7.0_dotnet/package/mobile','../../release/csharp-tct_7.0_dotnet/csharp-tct_7.0_dotnet/package/wearable')
# pack tizeniot package
- os.system(LINUX_PERMISSION + ' python pack.py ' + 'all')
- os.system(LINUX_PERMISSION+' python pack.py '+'manual NUI')
+ os.system(LINUX_PERMISSION + ' python3 pack.py ' + 'all')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'manual NUI')
# Copy mobile package folder to tizeniot package.
# set tizeniot_pkg_info.xml
# pack mobile package
create_folder('../../release/csharp-tct_7.0_dotnet/csharp-tct_7.0_dotnet/package/mobile')
- os.system(LINUX_PERMISSION+' python pack.py '+'all')
- os.system(LINUX_PERMISSION+' python pack.py '+'manual NUI')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'all')
+ os.system(LINUX_PERMISSION+' python3 pack.py '+'manual NUI')
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
- shutil.copytree(s, d, symlinks=False, ignore=None)
+ try:
+ shutil.copytree(s, d, symlinks=False, ignore=None)
+ except OSError as e:
+ print("Error: %s - %s." % (e.filename, e.strerror))
else:
shutil.copy2(s, d)
os.system('sudo chmod -R 777 '+ '../../release/csharp-tct_7.0_' + date_time)
#changing file format
- for root, dirs, files in os.walk(dst):
- for file in files:
- p=os.path.join(root,file)
- if not(is_binary(os.path.abspath(p))):
- text = open(os.path.abspath(p), 'rb').read().replace('\r\n','\n')
- open(os.path.abspath(p), 'wb').write(text)
+ #for root, dirs, files in os.walk(dst):
+ # for file in files:
+ # p=os.path.join(root,file)
+ # if not(is_binary(os.path.abspath(p))):
+ # text = open(os.path.abspath(p), 'rb').read().replace('\r\n','\n')
+ # open(os.path.abspath(p), 'wb').write(text)
with tarfile.open('../../release/csharp-tct_7.0_'+date_time+'.tar.gz', "w:gz") as tar:
tar.add(dst, arcname=os.path.basename(dst))
def create_folder(path):
if not os.path.isdir(path):
- os.mkdir(path,0777)
+ #os.mkdir(path,0777)
+ os.makedirs(path, exist_ok = True)
def remove_folder(path):
if os.path.isdir(path):
# Create bin/opt and package folder.
- os.mkdir('bin/opt',0777)
- os.mkdir('bin/opt/'+PACKAGE_NAME,0777)
+ #os.mkdir('bin/opt',0777)
+ #os.mkdir('bin/opt/'+PACKAGE_NAME,0777)
+ os.makedirs('bin/opt', exist_ok = True)
+ os.makedirs('bin/opt/'+PACKAGE_NAME, exist_ok = True)
# create new test.xml file
file_list = read_all_testfiles(PROJECT_PATH+PACKAGE_NAME+'/testcase/')
# tct-common path
# {repository_path}/tct-common
-TCT_COMMON='/home/tizen/ReleaseIOT/TCT/tct-common'
+TCT_COMMON='/home/tizen/ShareFolder/tct-tool/tct-common/tct-common'
# tct-mgr path
# {repository_path}/tct-mgr
-TCT_MGR='/home/tizen/ReleaseIOT/TCT/tct-mgr'
+TCT_MGR='/home/tizen/ShareFolder/tct-tool/tct-mgr/tct-mgr'
# tct-shell path
# {repository_path}/tct-shell
-TCT_SHELL='/home/tizen/ReleaseIOT/TCT/tct-shell'
+TCT_SHELL='/home/tizen/ShareFolder/tct-tool/tct-shell/tct-shell'
# tct path
# {repository_path}/api/release/chsarp-tct_7.0_dotnet
-TCT_PATH='/home/tizen/ReleaseIOT/TCT/TCT_7.0/api/release/csharp-tct_7.0_dotnet'
+TCT_PATH='/home/tizen/ShareFolder/4.Fx_Win/TCT_7.0/api/release/csharp-tct_7.0_dotnet'
echo "Getting latest tct-common, tct-mgr & tct-shell in spin repository."
cd $TCT_COMMON
git pull
echo "Updating resource folder"
-rsync -avz --exclude=tct-testconfig --exclude=tct-testconfig-3.0.zip $TCT_COMMON/tools/tct_"$TCT_VERSION"/resource/ $TCT_PATH/csharp-tct_"$TCT_VERSION"_dotnet/resource/
+rsync -avz --exclude=tct-testconfig-3.0.zip $TCT_COMMON/tools/tct_"$TCT_VERSION"/resource/ $TCT_PATH/csharp-tct_"$TCT_VERSION"_dotnet/resource/
# remove tizen-web-ui-fw and tinyweb folder
rm -rf $TCT_PATH/csharp-tct_"$TCT_VERSION"_dotnet/resource/tizen-web-ui-fw/
cd $TCT_PATH
cd ../../tool/script
-sudo python auto_binary.py
+sudo python3 auto_binary.py
\ No newline at end of file
from xml.etree.ElementTree import Element, SubElement, dump, parse, ElementTree
from pkginfo_gen import PKGInfoGenerator
from tcxml import read_tc_list, read_all_testfiles, indent, write_xml
+from pathlib import Path
PREFIX = 'Tizen.'
SUFFIX = '.Tests'
def create_folder(path):
if not os.path.isdir(path):
- os.mkdir(path,0777)
+ os.makedirs(path, exist_ok = True)
+ #os.mkdir(path,0o777)
def remove_folder(path):
+ #print("Path:"+path)
if os.path.isdir(path):
- shutil.rmtree(path)
+ #print("Vao day khong 1")
+ for sub in Path(path).iterdir():
+ #print("Vao day khong 2")
+ if not sub.is_dir():
+ #print("AAAAAAAAAAAAAAAAAA:"+str(sub))
+ sub.unlink()
+ else:
+ #print("Vao day khong 3")
+ remove_folder(str(sub))
+ Path(path).rmdir()
def copy_helper_application(folder_path , dest):
create_folder(dest)
# Create bin/opt and package folder.
- os.mkdir('bin/opt',0777)
- os.mkdir('bin/opt/'+PACKAGE_NAME,0777)
+ os.makedirs('bin/opt', exist_ok = True)
+ os.makedirs('bin/opt/'+PACKAGE_NAME, exist_ok = True)
+ #Path("bin/opt").mkdir(parents=True, exist_ok=True)
+ #Path('bin/opt/'+PACKAGE_NAME).mkdir(parents=True, exist_ok=True)
# create new test.xml file
file_list = read_all_testfiles(PROJECT_PATH+PACKAGE_NAME+'/testcase/')
import zipfile
import shutil
import platform
+import pathlib
+import shutil
+from pathlib import Path
FILE_PATH = '../../release/csharp-tct_7.0_dotnet/csharp-tct_7.0_dotnet/package/pkg_infos/mobile_pkg_info.xml'
OKGREEN = '\033[92m'
ENDC = '\033[0m'
+
+def del_folder(path):
+ for sub in Path(path).iterdir():
+ if sub.is_dir():
+ # Delete folder if it is a folder
+ del_folder(sub)
+ else:
+ # Delete file if it is a file:
+ sub.unlink()
+
+ # This removes the top-level folder:
+ Path(path).rmdir()
+
class PKGInfoGenerator:
# If option is 'all', all package generate.
module = ''
self.module = module
def print_log(self, string):
- print OKGREEN + string + ENDC
+ print (OKGREEN + string + ENDC)
def generate_pkg_info(self):
self.init_file()
self.set_testsuite_tag(project_name, tc_number, auto_manual)
# Remove Unzip folder
- shutil.rmtree(dest)
+ #shutil.rmtree(dest)
+ del_folder(dest)
def set_testsuite_tag(self, project_name, tc_number, auto_manual):
if self.module == 'all' :
import sys
import subprocess
from optparse import OptionParser, make_option\r
-import ConfigParser
+import configparser
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
def doCMD(cmd):
# Do not need handle timeout in this short script, let tool do it
- print "-->> \"%s\"" % cmd
+ print ("-->> \"%s\"" % cmd)
output = []
cmd_return_code = 1
cmd_proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
- output_line = cmd_proc.stdout.readline().strip("\r\n")
+ output_line = cmd_proc.stdout.readline().decode('utf-8').strip("\r\n")
cmd_return_code = cmd_proc.poll()
if output_line == '' and cmd_return_code != None:
break
"-u", dest="buninstpkg", action="store_true", help="Uninstall package")
global PARAMETERS
(PARAMETERS, args) = opts_parser.parse_args()
- except Exception, e:
- print "Got wrong option: %s, exit ..." % e
+ except Exception as e:
+ print ("Got wrong option: %s, exit ..." % e)
sys.exit(1)
if not PARAMETERS.device:
break
if not PARAMETERS.device:
- print "No device found"
+ print ("No device found")
sys.exit(1)
if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
- print "-i and -u are conflict"
+ print ("-i and -u are conflict")
sys.exit(1)
if PARAMETERS.buninstpkg:
import subprocess
import string
from optparse import OptionParser, make_option\r
-import ConfigParser
+import configparser
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
PARAMETERS = None
#XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/5000/dbus/user_bus_socket"
TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
-tct_parser = ConfigParser.ConfigParser()
+tct_parser = configparser.ConfigParser()
tct_parser.read(TCT_CONFIG_FILE)
SRC_DIR = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
PKG_SRC_DIR = "%s/tct/opt/%s" % (SRC_DIR, PKG_NAME)
def doCMD(cmd):
# Do not need handle timeout in this short script, let tool do it
- print "-->> \"%s\"" % cmd
+ print ("-->> \"%s\"" % cmd)
output = []
cmd_return_code = 1
cmd_proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
- output_line = cmd_proc.stdout.readline().strip("\r\n")
+ output_line = cmd_proc.stdout.readline().decode('utf-8').strip("\r\n")
cmd_return_code = cmd_proc.poll()
if output_line == '' and cmd_return_code != None:
break
"-a", dest="user", action="store", help="User name")
global PARAMETERS
(PARAMETERS, args) = opts_parser.parse_args()
- except Exception, e:
- print "Got wrong option: %s, exit ..." % e
+ except Exception as e:
+ print ("Got wrong option: %s, exit ..." % e)
sys.exit(1)
if not PARAMETERS.user:
PARAMETERS.mode = "SSH"
if not PARAMETERS.device:
- print "No device provided"
+ print ("No device provided")
sys.exit(1)
user_info = getUSERID()
userid = user_info[1][0]
XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
else:
- print "[Error] cmd commands error : %s"%str(user_info[1])
+ print ("[Error] cmd commands error : %s"%str(user_info[1]))
sys.exit(1)
if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
- print "-i and -u are conflict"
+ print ("-i and -u are conflict")
sys.exit(1)
if PARAMETERS.buninstpkg:
import subprocess
import string
from optparse import OptionParser, make_option\r
-import ConfigParser
+import configparser
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
PARAMETERS = None
#XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/5000/dbus/user_bus_socket"
TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
-tct_parser = ConfigParser.ConfigParser()
+tct_parser = configparser.ConfigParser()
tct_parser.read(TCT_CONFIG_FILE)
SRC_DIR = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
PKG_SRC_DIR = "%s/tct/opt/%s" % (SRC_DIR, PKG_NAME)
def doCMD(cmd):
# Do not need handle timeout in this short script, let tool do it
- print "-->> \"%s\"" % cmd
+ print ("-->> \"%s\"" % cmd)
output = []
cmd_return_code = 1
cmd_proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
- output_line = cmd_proc.stdout.readline().strip("\r\n")
+ output_line = cmd_proc.stdout.readline().decode('utf-8').strip("\r\n")
cmd_return_code = cmd_proc.poll()
if output_line == '' and cmd_return_code != None:
break
"-a", dest="user", action="store", help="User name")
global PARAMETERS
(PARAMETERS, args) = opts_parser.parse_args()
- except Exception, e:
- print "Got wrong option: %s, exit ..." % e
+ except Exception as e:
+ print ("Got wrong option: %s, exit ..." % e)
sys.exit(1)
if not PARAMETERS.user:
PARAMETERS.mode = "SSH"
if not PARAMETERS.device:
- print "No device provided"
+ print ("No device provided")
sys.exit(1)
user_info = getUSERID()
userid = user_info[1][0]
XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
else:
- print "[Error] cmd commands error : %s"%str(user_info[1])
+ print ("[Error] cmd commands error : %s"%str(user_info[1]))
sys.exit(1)
if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
- print "-i and -u are conflict"
+ print ("-i and -u are conflict")
sys.exit(1)
if PARAMETERS.buninstpkg:
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (c) 2014 Intel Corporation.
#
os.chdir(orig_dir)
return False
if key_file:
- pack_cmd = "python make_xpk.py %s %s -o %s" % (
+ pack_cmd = "python3 make_xpk.py %s %s -o %s" % (
app_src, key_file, os.path.join(app_dest, "%s.xpk" % app_name))
else:
- pack_cmd = "python make_xpk.py %s key.file -o %s" % (
+ pack_cmd = "python3 make_xpk.py %s key.file -o %s" % (
app_src, os.path.join(app_dest, "%s.xpk" % app_name))
if not doCMD(pack_cmd, DEFAULT_CMD_TIMEOUT):
os.chdir(orig_dir)
icon_opt = "--icon=%s/icon.png" % app_src
if safelyGetValue(build_json, "apk-type") == "MANIFEST":
- pack_cmd = "python make_apk.py --package=org.xwalk.%s " \
+ pack_cmd = "python3 make_apk.py --package=org.xwalk.%s " \
"--manifest=%s/manifest.json %s %s %s %s %s" % (
app_name, app_src, mode_opt, arch_opt,
ext_opt, cmd_opt, common_opts)
LOG.error(
"Fail to find the key \"apk-url-opt\" for hosted APP packing")
return False
- pack_cmd = "python make_apk.py --package=org.xwalk.%s --name=%s %s " \
+ pack_cmd = "python3 make_apk.py --package=org.xwalk.%s --name=%s %s " \
"%s %s %s %s %s" % (
app_name, app_name, mode_opt, arch_opt, ext_opt,
cmd_opt, url_opt, common_opts)
else:
- pack_cmd = "python make_apk.py --package=org.xwalk.%s --name=%s " \
+ pack_cmd = "python3 make_apk.py --package=org.xwalk.%s --name=%s " \
"--app-root=%s --app-local-path=index.html %s %s " \
"%s %s %s %s" % (
app_name, app_name, app_src, icon_opt, mode_opt,
sys.exit(1)
if BUILD_PARAMETERS.bversion:
- print "Version: %s" % TOOL_VERSION
+ print ("Version: %s" % TOOL_VERSION)
sys.exit(0)
if not BUILD_PARAMETERS.srcdir:
import subprocess
import string
from optparse import OptionParser, make_option
-import ConfigParser
+import configparser
PKG_NAMES = ["REPLACE"]
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
PARAMETERS = None
#XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/5000/dbus/user_bus_socket"
TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
-tct_parser = ConfigParser.ConfigParser()
+tct_parser = configparser.ConfigParser()
tct_parser.read(TCT_CONFIG_FILE)
SRC_DIR = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
PKG_SRC_DIR = "%s/tct/opt/%s" % (SRC_DIR, PKG_NAME)
def doCMD(cmd):
# Do not need handle timeout in this short script, let tool do it
- print "-->> \"%s\"" % cmd
+ print ("-->> \"%s\"" % cmd)
output = []
cmd_return_code = 1
cmd_proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
- output_line = cmd_proc.stdout.readline().strip("\r\n")
+ output_line = cmd_proc.stdout.readline().decode('utf-8').strip("\r\n")
cmd_return_code = cmd_proc.poll()
if output_line == '' and cmd_return_code != None:
break
doRemoteCMD("rm -rf /home/owner/share/res")
for root, dirs, files in os.walk(SCRIPT_DIR):
- print "uninstPKGs ################################"
+ print ("uninstPKGs ################################")
for file in files:
print ("file : %s" % (file))
if file.endswith(".wgt"):
"-a", dest="user", action="store", help="User name")
global PARAMETERS
(PARAMETERS, args) = opts_parser.parse_args()
- except Exception, e:
- print "Got wrong option: %s, exit ..." % e
+ except Exception as e:
+ print ("Got wrong option: %s, exit ..." % e)
sys.exit(1)
if not PARAMETERS.user:
PARAMETERS.mode = "SSH"
if not PARAMETERS.device:
- print "No device provided"
+ print ("No device provided")
sys.exit(1)
user_info = getUSERID()
userid = user_info[1][0]
XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
else:
- print "[Error] cmd commands error : %s"%str(user_info[1])
+ print ("[Error] cmd commands error : %s"%str(user_info[1]))
sys.exit(1)
if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
- print "-i and -u are conflict"
+ print ("-i and -u are conflict")
sys.exit(1)
if PARAMETERS.buninstpkg: