源码对照:5.2.4.2.1
默认文件系统 / TC_eUICC_Default_FileSystem
左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
23 行 / 676 字符 / gb18030
-cas 入口
TC_eUICC_Default_FileSystem/Import/TC_eUICC_Default_FileSystem.js
49 行 / 3665 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js23 行 / 676 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_Default_FileSystem_01_Nominal_Default_file_system_available (extracted verbatim)
2
3function TC_eUICC_Default_FileSystem_01_Nominal_Default_file_system_available()
4{
5
6 tracenamestr = "验证卡内没有profile时,存在默认文件系统的测试";
7 curDis.TraceStart(sno++,tracenamestr);
8
9 curLogicChannel = 0;
10 curDis.TestStepStart2(stno++,"复位;");
11 ResetCard();
12
13 curDis.TestStepStart2(stno++,"选择MF;");
14 check_eUICC_support_TERMINAL_CAPABILITY_cmd();
15
16 curDis.TestStepStart2(stno++,"发送TERMINAL CAPABILITY命令;");
17 TS_TERMINAL_CAPABILITY_cmd();
18
19 curDis.TestStepStart2(stno++,"发送TERMINAL PROFILE命令;");
20 IniCard_SetUpMenu("",1);
21
22}
23
-cas 盲生成TC_eUICC_Default_FileSystem/Import/TC_eUICC_Default_FileSystem.js49 行 / 3665 字符 / gb18030入口函数 @L12
1// Author: 卡思Cas智能体
2// Date: 20261004-022947
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_Default_FileSystem,Test Sequence #01 Nominal: Default file system available(本 TC 单条 Test Sequence),适用性 M。
4// Test points: S1-C1 ATR_present;S1-C1 T15_present;S1-C1 first_tB_after_T15;S1-C2 tB_b2
5// S2-C1 FCP_Template;S2-C2 tag_87_in_A5;S2-C2 87_low_byte;S2-C3 SW;S3-C1 SW;S4-C3 final SW
6// S4-C2 refresh_uicc_reset_mode
7// 本函数由 CaseIR 5.2.4.2.1 编译生成(5.2.4.2.1-TC_eUICC_Default_FileSystem-20261004_022947,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
8// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
9// 适用性 M:编译期门,运行时由 harness 环境前置承担。
10// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
11// IC1 卡态声明(E 段 General Initial Conditions,编排责任):There is no Profile installed in the eUICC.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
12function TC_eUICC_Default_FileSystem_01_merged() {
13 var bind = curBind;
14
15 // 步骤 1:RESET(tc_step;REQ: RQ34_003, RQ34_004_1)
16 var s1 = bind.resetAndAtr();
17 bind.checkData("S1-C1 ATR_present", "1", s1.atr_hex !== "" ? "1" : "0");
18 bind.checkData("S1-C1 T15_present", "present", s1.atr_parse.t15_round !== null ? "present" : "absent");
19 bind.checkData("S1-C1 first_tB_after_T15", "present", s1.atr_parse.first_tbi_after_t15 !== null ? "present" : "absent");
20 bind.checkData("S1-C2 tB_b2", "1", s1.atr_parse.euicc_b2.present ? String(s1.atr_parse.euicc_b2.b2) : "absent:" + s1.atr_parse.euicc_b2.reason);
21
22 // 步骤 2:SELECT_MF(tc_step;REQ: RQ34_010, RQ34_011, RQ34_005_1, RQ34_003, RQ34_004_1)
23 // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
24 var s2 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
25 bind.checkData("S2-C1 FCP_Template", "1", s2.resp.length > 0 ? "1" : "0");
26 var a5p2S2C2 = s2.resp.indexOf("A5");
27 var t872S2C2 = a5p2S2C2 >= 0 ? s2.resp.substring(a5p2S2C2).indexOf("870101") : -1;
28 bind.checkData("S2-C2 tag_87_in_A5", "present", t872S2C2 >= 0 ? "present" : "absent");
29 bind.checkData("S2-C2 87_low_byte", "01", t872S2C2 >= 0 ? s2.resp.substring(a5p2S2C2 + t872S2C2 + 4, a5p2S2C2 + t872S2C2 + 6) : "absent");
30 bind.checkData("S2-C3 SW", "9000", s2.sw);
31
32 // 步骤 3:TERMINAL_CAPABILITY_LPAd(tc_step;REQ: RQ34_005_1, RQ34_003, RQ34_004_1)
33 var s3 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
34 bind.checkData("S3-C1 SW", "9000", s3.sw);
35
36 // 步骤 4:TERMINAL_PROFILE(tc_step;REQ: RQ34_003, RQ34_004_1)
37 var tp4 = null;
38 var steady4 = bind.runToSteadyState(function () {
39 tp4 = bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000/91XX");
40 return tp4;
41 });
42 bind.checkData("S4-C3 final SW", "9000", steady4.final.sw);
43 bind.checkData("S4-C2 refresh_uicc_reset_mode", "supported", tp4.cmd.substring(14, 16) == "FF" ? "supported" : "absent");
44 // S4-C1: 'interim_SW' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
45 // S4-C1: 'fetch_issued' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
46 // S4-C1: 'terminal_response' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
47 // S4-C1: binding:runToSteadyState_structural(chaining-rule) (check_attestation)
48}
49
完整 unified diff
行级差异:新增 46 行 / 删除 20 行(以 -man 为基准,unified 上下文 3 行)。
展开 diff(72 行)
--- -man
+++ -cas
@@ -1,23 +1,49 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_Default_FileSystem_01_Nominal_Default_file_system_available (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261004-022947
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_Default_FileSystem,Test Sequence #01 Nominal: Default file system available(本 TC 单条 Test Sequence),适用性 M。
+// Test points: S1-C1 ATR_present;S1-C1 T15_present;S1-C1 first_tB_after_T15;S1-C2 tB_b2
+// S2-C1 FCP_Template;S2-C2 tag_87_in_A5;S2-C2 87_low_byte;S2-C3 SW;S3-C1 SW;S4-C3 final SW
+// S4-C2 refresh_uicc_reset_mode
+// 本函数由 CaseIR 5.2.4.2.1 编译生成(5.2.4.2.1-TC_eUICC_Default_FileSystem-20261004_022947,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
+// IC1 卡态声明(E 段 General Initial Conditions,编排责任):There is no Profile installed in the eUICC.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_Default_FileSystem_01_merged() {
+ var bind = curBind;
-function TC_eUICC_Default_FileSystem_01_Nominal_Default_file_system_available()
-{
-
- tracenamestr = "验证卡内没有profile时,存在默认文件系统的测试";
- curDis.TraceStart(sno++,tracenamestr);
-
- curLogicChannel = 0;
- curDis.TestStepStart2(stno++,"复位;");
- ResetCard();
-
- curDis.TestStepStart2(stno++,"选择MF;");
- check_eUICC_support_TERMINAL_CAPABILITY_cmd();
-
- curDis.TestStepStart2(stno++,"发送TERMINAL CAPABILITY命令;");
- TS_TERMINAL_CAPABILITY_cmd();
-
- curDis.TestStepStart2(stno++,"发送TERMINAL PROFILE命令;");
- IniCard_SetUpMenu("",1);
-
+ // 步骤 1:RESET(tc_step;REQ: RQ34_003, RQ34_004_1)
+ var s1 = bind.resetAndAtr();
+ bind.checkData("S1-C1 ATR_present", "1", s1.atr_hex !== "" ? "1" : "0");
+ bind.checkData("S1-C1 T15_present", "present", s1.atr_parse.t15_round !== null ? "present" : "absent");
+ bind.checkData("S1-C1 first_tB_after_T15", "present", s1.atr_parse.first_tbi_after_t15 !== null ? "present" : "absent");
+ bind.checkData("S1-C2 tB_b2", "1", s1.atr_parse.euicc_b2.present ? String(s1.atr_parse.euicc_b2.b2) : "absent:" + s1.atr_parse.euicc_b2.reason);
+
+ // 步骤 2:SELECT_MF(tc_step;REQ: RQ34_010, RQ34_011, RQ34_005_1, RQ34_003, RQ34_004_1)
+ // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+ var s2 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+ bind.checkData("S2-C1 FCP_Template", "1", s2.resp.length > 0 ? "1" : "0");
+ var a5p2S2C2 = s2.resp.indexOf("A5");
+ var t872S2C2 = a5p2S2C2 >= 0 ? s2.resp.substring(a5p2S2C2).indexOf("870101") : -1;
+ bind.checkData("S2-C2 tag_87_in_A5", "present", t872S2C2 >= 0 ? "present" : "absent");
+ bind.checkData("S2-C2 87_low_byte", "01", t872S2C2 >= 0 ? s2.resp.substring(a5p2S2C2 + t872S2C2 + 4, a5p2S2C2 + t872S2C2 + 6) : "absent");
+ bind.checkData("S2-C3 SW", "9000", s2.sw);
+
+ // 步骤 3:TERMINAL_CAPABILITY_LPAd(tc_step;REQ: RQ34_005_1, RQ34_003, RQ34_004_1)
+ var s3 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+ bind.checkData("S3-C1 SW", "9000", s3.sw);
+
+ // 步骤 4:TERMINAL_PROFILE(tc_step;REQ: RQ34_003, RQ34_004_1)
+ var tp4 = null;
+ var steady4 = bind.runToSteadyState(function () {
+ tp4 = bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000/91XX");
+ return tp4;
+ });
+ bind.checkData("S4-C3 final SW", "9000", steady4.final.sw);
+ bind.checkData("S4-C2 refresh_uicc_reset_mode", "supported", tp4.cmd.substring(14, 16) == "FF" ? "supported" : "absent");
+ // S4-C1: 'interim_SW' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S4-C1: 'fetch_issued' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S4-C1: 'terminal_response' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S4-C1: binding:runToSteadyState_structural(chaining-rule) (check_attestation)
}