diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fc8222b..6724ea1 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -11,3 +11,4 @@ file(COPY conf DESTINATION ./) file(COPY rule DESTINATION ./) file(COPY testdata DESTINATION ./) file(COPY testdata_uni2ascii DESTINATION ./) +file(COPY test_streamfiles DESTINATION ./) \ No newline at end of file diff --git a/test/maat_json.json b/test/maat_json.json index cbd7868..64d80e6 100644 --- a/test/maat_json.json +++ b/test/maat_json.json @@ -495,6 +495,32 @@ ] } ] + }, + { + "compile_id": 140, + "service": 1, + "action": 1, + "do_blacklist": 1, + "do_log": 1, + "user_region": "file_streams", + "is_valid": "yes", + "groups": [ + { + "group_name": "Untitled", + "regions": [ + { + "table_name": "KEYWORDS_TABLE", + "table_type": "string", + "table_content": { + "keywords": "2018-10-05", + "expr_type": "none", + "match_method": "sub", + "format": "uncase plain" + } + } + ] + } + ] } ], "plugin_table": [ diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp index 7279984..25cd522 100644 --- a/test/test_maatframe.cpp +++ b/test/test_maatframe.cpp @@ -483,6 +483,79 @@ TEST(StringScan, OffsetChunk1460) test_offset_str_scan_with_chunk(1460); return; } +TEST(StreamScan, StreamFiles) +{ +#define StreamScan_StreamFiles + + const char* test_data_dir="./test_streamfiles"; + struct dirent **namelist; + FILE* fp=NULL; + char file_path[256]={0}; + char *buff; + size_t read_len=0; + int table_id=0,ret=0; + struct Maat_rule_t result[4]; + stream_para_t sp=NULL; + int n=0,i=0, hit_cnt=0; + const char* table_name="KEYWORDS_TABLE"; + scan_status_t mid=NULL; + + table_id=Maat_table_register(g_feather,table_name); + ASSERT_GT(table_id, 0); + + n = my_scandir(test_data_dir, &namelist, NULL, (int (*)(const void*, const void*))alphasort); + ASSERT_GT(n, 0); + sp=Maat_stream_scan_string_start(g_feather,table_id,0); + ASSERT_FALSE(sp==NULL); + + struct stat file_info; + size_t file_size=0; + for(i=0;id_name, ".") == 0) || (strcmp(namelist[i]->d_name, "..") == 0)) + { + continue; + } + snprintf(file_path,sizeof(file_path),"%s/%s",test_data_dir,namelist[i]->d_name); + + ret=stat(file_path, &file_info); + ASSERT_TRUE(ret==0); + + file_size=file_info.st_size; + buff=(char*)malloc(file_size); + fp=fopen(file_path,"rb"); + + if(fp==NULL) + { + printf("fopen %s error.\n",file_path);; + continue; + } + read_len=fread(buff,1,file_size,fp); + ret=Maat_stream_scan_string(&sp,CHARSET_NONE,buff,read_len + ,result, NULL, 4, &mid); + read_len=fread(buff,1,sizeof(buff),fp); + if(ret>0) + { + hit_cnt++; + } + printf("Stream Scan %s, ret=%d.\n",file_path,ret); + fclose(fp); + free(buff); + buff=NULL; + } + Maat_clean_status(&mid); + Maat_stream_scan_string_end(&sp); + EXPECT_GT(hit_cnt, 0); + + for(i=0;i + + + + + + + + + + + + + + + +全国中小学教师继续教育网 + + + +
+ + +
+
+ +
+     返回旧版 + +
+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+ + + + + +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ 国培示范项目 +
+
+ “国培计划(2018)”——示范性紧缺领域体育美育小学音乐骨干教师培训项目(沈阳师范大学) +
+
+ “国培计划(2018)”——示范性培训团队高级研修项目(清华大学) +
+
+ “国培计划”——示范性综合改革项目 优秀心理健康青年教师助力研修项目(黑龙江省教育学院) +
+
+ “国培计划”——示范性综合改革项目 初中语文骨干教师培训项目(黑龙江省教育学院) +
+
+ “国培计划(2017)”——示范性名师高端研修 四川省小学特级教师高端研修项目(成都师范学院) +
+
+ + + +
+ +
+ +