Browse Source

Z991239-5518 #comment feat: 框架自动化验证启动识别标识添加

陈纪林80310970 1 year ago
parent
commit
a20ad642a3

+ 1 - 0
Framework/Common/SpBase.h

@@ -529,6 +529,7 @@ struct CSystemRunInfo
 	DebugLevelEnum eDebugLevel;
 	DebugLevelEnum eDebugLevel;
 	FrameworkStateEnum eState;
 	FrameworkStateEnum eState;
 	DWORD dwBootOption;
 	DWORD dwBootOption;
+	BOOL autoTest;
 	CAutoArray<CSimpleStringA> strRunningEntityNames;
 	CAutoArray<CSimpleStringA> strRunningEntityNames;
 };
 };
 
 

+ 6 - 0
Framework/spbase/SpEntity.cpp

@@ -1494,6 +1494,12 @@ ErrorCodeEnum SpEntity::GetSystemRunInfo(CSystemRunInfo &Info)
         }
         }
 	}
 	}
 
 
+	Info.autoTest = FALSE;
+	if (cfg->args->auto_test)
+	{
+		Info.autoTest = TRUE;
+	}
+
 	if (cfg->args->start_entities != NULL && strlen(cfg->args->start_entities) != 0) {
 	if (cfg->args->start_entities != NULL && strlen(cfg->args->start_entities) != 0) {
 		Info.dwBootOption |= BootOption_Entity;
 		Info.dwBootOption |= BootOption_Entity;
 	}
 	}

+ 1 - 0
Framework/spbase/sp_cfg.cpp

@@ -2600,6 +2600,7 @@ int sp_cfg_create(sp_dir_t* dir, const sp_cfg_start_args_t* args, sp_cfg_t** p_c
 		memset(cfg->args, 0, sizeof(sp_cfg_start_args_t));
 		memset(cfg->args, 0, sizeof(sp_cfg_start_args_t));
 		cfg->args->start_entities = shm_strdup(args->start_entities);
 		cfg->args->start_entities = shm_strdup(args->start_entities);
 		cfg->args->test_mode = args->test_mode;
 		cfg->args->test_mode = args->test_mode;
+		cfg->args->auto_test = args->auto_test;
 		cfg->args->debug_mode = args->debug_mode;
 		cfg->args->debug_mode = args->debug_mode;
 		cfg->args->guardian_mode = args->guardian_mode;
 		cfg->args->guardian_mode = args->guardian_mode;
 		cfg->args->sign_verifity = args->sign_verifity;
 		cfg->args->sign_verifity = args->sign_verifity;

+ 1 - 0
Framework/spbase/sp_cfg.h

@@ -22,6 +22,7 @@ typedef struct sp_cfg_start_args_t {
 	char* arguments;
 	char* arguments;
 	char* start_entities;    /*split with ';' for supported multi entities*/
 	char* start_entities;    /*split with ';' for supported multi entities*/
 	char test_mode;         /*1: run as test mode, trigger test deamon entity to invoke onTest*/
 	char test_mode;         /*1: run as test mode, trigger test deamon entity to invoke onTest*/
+	char auto_test;			/*1: run as auto test mode, loadup simulator adapter */
 	char debug_mode;    /*trace memory alloca and cpu etc resource */
 	char debug_mode;    /*trace memory alloca and cpu etc resource */
 	char guardian_mode;
 	char guardian_mode;
 	char sign_verifity;
 	char sign_verifity;

+ 6 - 1
Framework/spshell/spshell.cpp

@@ -593,6 +593,7 @@ void DisplayUsage()
 		"--noroot                      -- 允许以非管理员或Root权限方式启动\n"
 		"--noroot                      -- 允许以非管理员或Root权限方式启动\n"
 		"--restart                       --重启当前应用\n"
 		"--restart                       --重启当前应用\n"
 		"--version                      --显示当前的版本\n"
 		"--version                      --显示当前的版本\n"
+		"--autotest                      --自动化验证\n"
 #ifdef WITH_DEBUG
 #ifdef WITH_DEBUG
 		"--telnet {listern port}   --激活远程调用功能\n"
 		"--telnet {listern port}   --激活远程调用功能\n"
 #endif
 #endif
@@ -686,13 +687,17 @@ sp_cfg_start_args_t* DealWithArgs(int argc, char** argv)
 		{"systemoff", optional_argument, 0, 'Y'},
 		{"systemoff", optional_argument, 0, 'Y'},
 		{"reboot", optional_argument, 0, 'J'},
 		{"reboot", optional_argument, 0, 'J'},
 		{"env", required_argument, 0, 'A' },
 		{"env", required_argument, 0, 'A' },
+		{"autotest", no_argument, 0, 'C'},
 		{0, 0, 0, 0}
 		{0, 0, 0, 0}
 	};
 	};
 
 
 	int spshell_index = 0;
 	int spshell_index = 0;
 	int c;
 	int c;
-	while ((c = getopt_long(argc, argv, "E:GTDI:SKBU:HVOR::Y::J::A:?", spshell_options, &spshell_index)) != EOF) {
+	while ((c = getopt_long(argc, argv, "E:GTDI:SKBU:HVOR::Y::J::A:C?", spshell_options, &spshell_index)) != EOF) {
 		switch (c) {
 		switch (c) {
+		case 'C':
+			args->auto_test = 1;
+			break;
 		case 'E':
 		case 'E':
 		{
 		{
 			if (optarg != NULL) {
 			if (optarg != NULL) {

+ 5 - 1
Module/include/DevEntityCommBase.hpp

@@ -161,7 +161,11 @@ inline ErrorCodeEnum CDevAdptEntityBase::ExtractVendorLibName()
 		}
 		}
 		CSimpleStringA strSection = CSimpleStringA("Device.") + strDeviceEntityName;
 		CSimpleStringA strSection = CSimpleStringA("Device.") + strDeviceEntityName;
 		vendorLibInfo.strDevice = strDeviceEntityName;
 		vendorLibInfo.strDevice = strDeviceEntityName;
-		if (true) //识别成测试模式的条件
+		
+		CSystemRunInfo runInfo = { 0 };
+		ErrorCodeEnum ec = GetFunction()->GetSystemRunInfo(runInfo);
+
+		if (runInfo.autoTest) //识别成测试模式的条件
 		{
 		{
 			vendorLibInfo.strVendor = "simulator";
 			vendorLibInfo.strVendor = "simulator";
 			vendorLibInfo.strVersion = "1";
 			vendorLibInfo.strVersion = "1";