2007 2013 Kandroid
www.kandroid.org »
kandroid s/w fundamentals 교육 »
Android Compatibility 
▶ Android CTS 공식페이지
CTS 사용법
작성자 소오강호
작성일 2010-03-20 (토) 21:58
ㆍ추천: 0  ㆍ조회: 15596      
IP: 59.xxx.13
얼마전에 5회 세미나에서 제가 간단하게 CTS 사용법에 대해서 설명을 해 드렸는데요, 그 내용을 아래와 같이 다시 정리해 드립니다. 그리고 저한테 쪽지 보내셨던 분들에게는, 매우 죄송하게도 제가 그 쪽지들을 이제야 봤습니다. Kandroid에 로그인은 최소 일주일에 한번 이상은 하는데, 로그인해도 쪽지 왔다고 뭐 번쩍 번쩍 하는 것도 없고해서, 쪽지가 있다는 것을, 오늘 이메일 보고서야 알았습니다. 그 분들에게 별도로 답장을 간단하게라도 드리겠습니다만, 하여튼 기술적으로 CTS를 돌리는 방법은 이렇습니다:

1. 우선 최신 Eclair 버전으로 소스를 받습니다. (repo sync)

2. 그리고 CTS를 소스로부터 아래와 같이 build 합니다.


[ty]~/work/eclair ls
Makefile  bootable  cts     development  frameworks  out       prebuilt  system
bionic    build     dalvik  external     hardware    packages  sdk       vendor


[ty]~/work/eclair$ source build/envsetup.sh
including vendor/aosp/vendorsetup.sh
[ty]~/work/eclair$
[ty]~/work/eclair$ lunch 1

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================

[ty]~/work/eclair$
[ty]~/work/eclair$
[ty]~/work/eclair$ make cts
.
.

.

Generating test description for package android.tests.sigtest
Generating test description for package android.apidemos.cts
Generating test description for package android.tests.appsecurity
Generating test description for package android.app
Generating test description for package android.view
Generating test description for package android.net
Generating test description for package android.widget
Generating test description for package android.example
Generating test description for package android.speech
Generating test description for package android.permission
Generating test description for package android.webkit
Generating test description for package android.util
Generating test description for package android.dpi
Generating test description for package android.media
Generating test description for package android.jni
Generating test description for package android.accounts
Generating test description for package android.gesture
Generating test description for package android.os
Generating test description for package android.telephony
Generating test description for package android.permission2
Generating test description for package android.performance4
Generating test description for package android.bluetooth
Generating test description for package android.performance3
Generating test description for package android.performance
Generating test description for package android.database
Generating test description for package android.performance2
Generating test description for package android.hardware
Generating test description for package android.provider
Generating test description for package android.text
Generating test description for package android.dpi2
Generating test description for package android.graphics
Generating test description for package android.content
Generating test description for package android.performance5
Generating test description for package android.location
Generating test plan CTS
Generating test plan Android
Generating test plan Java
Generating test plan VM
Generating test plan Signature
Generating test plan RefApp
Generating test plan Performance
Generating test plan AppSecurity
Package CTS: out/host/linux-x86/cts/android-cts.zip
Install: out/host/linux-x86/bin/adb
[ty]~/work/eclair$

3. 생성된 android-cts.zip 파일의 압축을 적당한 디렉토리에 풀어 놓습니다.

[ty]~/work/eclair/out/host/linux-x86/cts$ ls -l
total 21608
-rw-r--r-- 1 tykim tykim        0 Mar 20 21:13 all_cts_core_files_stamp
-rw-r--r-- 1 tykim tykim        0 Mar 20 21:13 all_cts_files_stamp
drwxr-xr-x 5 tykim tykim     4096 Mar 20 21:13 android-cts
-rw-r--r-- 1 tykim tykim 22118200 Mar 20 21:15 android-cts.zip
drwxr-xr-x 2 tykim tykim     4096 Mar 20 21:13 temp
[ty]~/work/eclair/out/host/linux-x86/cts$

4. startcts 스크립트를 편집합니다. 그 내용 안에 보면 SDK_ROOT=NOT_CONFIGURED 라고 되어있는데, NOT_CONFIGURED 부분을 실제 사용하시는 SDK의 root 디렉토리로 바꿔주시면 됩니다.

[ty]~/work/cts21/kandroid/android-cts$ ls -l
total 12
drwxr-xr-x 2 tykim tykim 4096 Mar 20 21:13 docs
drwxr-xr-x 4 tykim tykim 4096 Mar 20 21:13 repository
drwxr-xr-x 2 tykim tykim 4096 Mar 20 21:13 tools
[ty]~/work/cts21/kandroid/android-cts$

.

[ty]~/work/cts21/kandroid/android-cts/tools$ ls -l
total 320
-rw-r--r-- 1 tykim tykim 189212 Mar 20 21:13 cts.jar
-rw-r--r-- 1 tykim tykim   6426 Mar 20 21:13 hosttestlib.jar
-rw-r--r-- 1 tykim tykim 119375 Mar 20 21:13 junit.jar
-rwxrwxr-x 1 tykim tykim   2726 Mar 20 21:13 startcts
[ty]~/work/cts21/kandroid/android-cts/tools$

5. 디바이스를 연결하고 CTS 툴을 시작합니다.

[ty]~/work/cts21/kandroid/android-cts/tools$ adb devices
List of devices attached
emulator-5554    device

[ty]~/work/cts21/kandroid/android-cts/tools$
[ty]~/work/cts21/kandroid/android-cts/tools$ ./startcts
Android CTS version 2.1_r1
Device(emulator-5554) connected
cts_host > cts_host >
cts_host >

5. help 명령을 치시면 다양한 옵션을 보실 수 있습니다. 예를 들어서, 특정 패키지 하나만 테스트 해 볼려면 다음과 같이 하시면 됩니다.

cts_host > start --plan CTS -p android.app
start java package android.app
==============================================================
Test java package contained in test package android.app: android.app
android.app.cts.ActivityGroupTest#testTabBasic...(pass)
android.app.cts.ActivityGroupTest#testTabFinishCreate...(pass)
android.app.cts.ActivityGroupTest#testTabFinishStart...(pass)
.
.
.
android.app.cts.TimePickerDialogTest#testOnTimeChanged....(pass)
android.app.cts.TimePickerDialogTest#testSaveInstanceState...(pass)
android.app.cts.TimePickerDialogTest#testUpdateTime...(pass)
==============================================================
Time: 469.427s

cts_host >
.
.
.
[ty]~/work/cts21/kandroid/android-cts/repository/results$ ls -l
total 180
drwxr-xr-x 2 tykim tykim   4096 Mar 20 21:31 2010.03.20_21.30.27
-rw-r--r-- 1 tykim tykim 139035 Mar 20 21:38 2010.03.20_21.30.27.zip
-rw-r--r-- 1 tykim tykim   4737 Mar 20 21:28 cts_result.css
-rw-r--r-- 1 tykim tykim  22263 Mar 20 21:28 cts_result.xsl
-rw-r--r-- 1 tykim tykim   3863 Mar 20 21:28 logo.gif
-rw-r--r-- 1 tykim tykim    527 Mar 20 21:28 newrule-green.png
[ty]~/work/cts21/kandroid/android-cts/repository/results$





이름아이콘 들풀
2010-03-21 02:44
훌륭한 정리 감사합니다.~
   
이름아이콘 불타는주작
2010-03-21 18:32
아하... 감사합니다. ^^ 결국은 make cts군요..
   
이름아이콘 질쟁이
2010-03-21 21:31
저 같은 경우에는 tests하고 tools 폴더 밖에는

나타나지 않습니다.
소오강호 우분투 호스트에서 소스코드 받고, 빌드 환경 설정한 다음에 make cts 했는데도 안된다는 뜻인가요? 이상하네요, 저는 한번에 그냥 잘 되던데 말이죠... ^^; 3/23 20:48
   
이름아이콘 멀때
2010-03-24 18:13
안녕 하세요
저는 DeviceCollector 를 만들 규치깅 없다고 하면서 make cts 가 안됩니다.
혹시 이런 경우에는 어떻게 해결을 해야 할까요? 도움 부탁 드립니다..ㅠㅠ
소오강호 글쎄요, 첨 보는 에러네요. 최신 2.1 소스받고 환경 설정하시고 make cts하면 에러가 안나야 하는데 말이죠. ^^; 3/25 08:09
   
이름아이콘 질쟁이
2010-03-24 23:51
맞네요 ; 제꺼에 뭔가 문제가 있었던것 같습니다. 좋은 답변 감사드립니다.
   
이름아이콘 reshout
2010-04-05 19:48
CTS 수행 중 다음과 같은 에러가 발생합니다.
Max ADB operations reached. Restarting ADB...
테스트 케이스가 많을때 발생하는 것 같은데 혹시 해결책 아시는분?
소오강호 뭐 여러번 돌려보시면 이미 파악하셨겠지만, 그건 에러라기 보다는 정상적으로 발생하는 메시지입니다. CTS 돌리다보면 수십번은 보게 되는 메시지죠, 디바이스도 여러번 rebooting 되구요. 4/11 09:25
   
이름아이콘 ming
2010-05-06 17:05
안녕하세요 저도 make cts 시작하자 마자 에러나는데요
찾아봐도 잘 모르겠네요..ㅜㅜ 혹시 보신적 있을까요?
build/core/base_rules.mk:117: *** external/bluetooth/bluez/test: MODULE.TARGET.EXECUTABLES.bdaddr already defined by vendor/broadcom/alohag/addr.  Stop.
   
이름아이콘 newwave
2010-05-17 20:51
adb reboot 후에 단말이 자동으로 connect 되지 않습니다...

-------------------------------------------------
root@*** tools]# ./startcts
Android CTS version 2.1_pre_r2
Device(1234567890ABCDEF) connected
cts_host>
-------------------------------------------------
==> 요렇게 connect된 상태에서 ..

-------------------------------------------------
root@*** android-sdk-linux_86]# adb shell reboot
-------------------------------------------------
===> 다른 터미널로 adb reboot을 하면..

-------------------------------------------------
cts_host> Device(1234567890ABCDEF) disconnected
-------------------------------------------------
===> 이렇게... disconnected라고 표시되고.. 리부팅 후에 저절로 connect 되지 않습니다..

제가 알기로는 cts 테스트 중에 단말 리부팅이 여러번 되고.. 리부팅 후에는 별 조작없이 바로 connect 되야 한다고 알고 있는데.. 혹시 의심가는 부분 있으신가요??

cts 돌려도 거진 됩니다.. 단말 리부팅 되기 전까지는요.. -_-;; 리부팅 되곤 더 이상 진행을 안합니다.. 뭐가 문제일까요
olatsee 저도 님과 비슷한 상황입니다.
현재 CTS를 돌리는 도중 항상 hardware test를 끝내면 디바이스가 완전히 다운이 됩니다.
하지만 CTS는 세션이 남아있기 때문에 이어서 돌릴 수 있습니다.
그 방법으로 CTS를 끝내기는 했지만...
왜 자꾸 하드웨어 테스트만 끝나면 디바이스가 뻗어 버리는지..
혹시 이유를 알 수 없을까요?
7/9 11:23
   
이름아이콘 hyper
2010-06-16 12:45
startcts로 cts 쉘 구동하고, start plan ... 이렇게 해서 cts 구동하는 것을 매크로 등으로 한방에 처리할 수 있는 방법은 없을까요??
   
이름아이콘 olatsee
2010-07-09 11:22
《Re》newwave 님 ,
저도 님과 비슷한 상황입니다.
현재 CTS를 돌리는 도중 항상  hardware test를 끝내면 디바이스가 완전히 다운이 됩니다.
하지만 CTS는 세션이 남아있기 때문에 이어서 돌릴 수 있습니다.
그 방법으로 CTS를 끝내기는 했지만...
왜 자꾸 하드웨어 테스트만 끝나면 디바이스가 뻗어 버리는지..
혹시 이유를 알 수 없을까요?
   
이름아이콘 홍쑤
2011-01-19 10:58
하드웨어 문제 아닐까요. 같은 모델이여도 잘돌아가는 장비는 몇번을 돌려도 잘돌아가고 중간에 자꾸 끈기는 장비는 매번 자꾸 끈기더라구요. 장비를 바꿔서 돌려보세요. 돌리다보면 잘돌아가는 장비가 있음. ㅎㅎ
   
이름아이콘 dandyman
2012-04-13 17:35
cts 테스트중 뻗어 버리는데.. 4.0 에서 보니
명령어에 run cts --plan session_id 라고 되어있는데 세션아이디를 못찾겠는데 아시는지요?
   
이름아이콘 inwoo
2012-06-29 12:13
《Re》dandyman 님 ,
세션아이디 어떤걸 말하는지 찾으셨나요?
   
 
덧글 쓰기 0
32000
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
CTS 사용법 [13]+4 소오강호 2010-03-20 15596
10 CTS의 의미 [4] 소오강호 2010-03-20 13911
9 Android Compatibility 관련 개요. [13]+7 들풀 2009-12-18 10901
8 Android 2.1 CTS Source [1] 들풀 2010-02-20 7183
7 안드로이드의 호환성에 대하여 - 송경희 [1] 들풀 2010-07-02 6823
6 안드로이드, 그대는 들풀? ^^; [4] 소오강호 2010-05-18 6569
5 CTS Document 다운로드 방법. [3]+1 들풀 2010-03-15 5962
4 안드로이드 Gingerbread CDD 변경 [3]+4 들풀 2010-10-31 5265
3 CTS 인증 절차 질문드려요. [3] 로미니 2012-03-26 1968
2 현재 CTS 인증 등록에 관한 방법 문의 [1] 먹자몬스터 2012-08-24 1059
1 [문의]안드로이드 앱 탑재 [1]+3 심통 2012-08-10 950
1