【CTS】いくつかのserialno失敗項目

2154 ワード

【問題の結論】[Common]SN構成項目の問題は、「数字と大文字と小文字」のみで構成SNをアルファベット数字の組み合わせに変更し、すべてのpass【問題の説明】CTSの3つの失敗項目をテストする
run cts -m CtsTelephonyTestCases -t android.telephony.cts.TelephonyManagerTest#testGetDeviceId
run cts -m CtsTelephonyTestCases -t android.telephony.cts.TelephonyManagerTest#testGetDeviceIdForSlot
run cts -m CtsUsbTests -t com.android.cts.usb.TestUsbTest#testUsbSerialReadOnDeviceMatches

質問ログ:
06-10 15:29:58 I/ConsoleReporter: [1/1 armeabi-v7a CtsUsbTests xxx_xxx_111_00000111] com.android.cts.usb.TestUsbTest#testUsbSerialReadOnDeviceMatches fail: junit.framework.ComparisonFailure: usb serial != adb serial expected: but was:
    at junit.framework.Assert.assertEquals(Assert.java:100)
    at junit.framework.TestCase.assertEquals(TestCase.java:261)
    at com.android.cts.usb.TestUsbTest.testUsbSerialReadOnDeviceMatches(TestUsbTest.java:162)

【問題分析】
  • ソースコード遡及
  • cts / master / . / hostsidetests / usb / src / com / android / cts / usb / TestUsbTest.java
    /**
         * Check if adb serial number, USB serial number, ro.serialno, and android.os.Build.SERIAL
         * all matches and meets the format requirement [a-zA-Z0-9]{6,20}
         */
    public void testInstantAppsCannotReadSerial() throws Exception {
    ......
            CommandResult result = RunUtil.getDefault().runTimedCmd(5000, "lsusb", "-v");// linux shell "lsusb -v"
    ......
            String lsusbOutput = result.getStdout();
            Pattern pattern = Pattern.compile("^\\s+iSerial\\s+\\d+\\s+([a-zA-Z0-9]{6,20})",Pattern.MULTILINE);// , serilnumber “ , 6≤lenth≤20”
            Matcher matcher = pattern.matcher(lsusbOutput);
            String usbSerial = "";
            while (matcher.find()) {
                String currentSerial = matcher.group(1).toLowerCase();
                if (adbSerial.compareTo(currentSerial) == 0) {
                    usbSerial = currentSerial;
                    break;
                }
            }
            assertEquals("usb serial != adb serial" , usbSerial, adbSerial);// serialno , , 
    
  • 実験ソースコードテストロジックを整理した後、SN構成項目を「下線なし」のアルファベット数字の組み合わせ実験結果に修正した:3つの平均pass