Commit b017f818 by sikang

update script

parent b277e3d8
...@@ -27,37 +27,42 @@ def get_rand_code(isInFunc): ...@@ -27,37 +27,42 @@ def get_rand_code(isInFunc):
# 随机缩进 # 随机缩进
num = random.randint(0, 4); num = random.randint(0, 4);
code = ";\n" code = ";\n"
filedName = gen_rand_str() filed_name = gen_rand_str()
filed_value = random.randint(0, 100000);
# 随机代码 # 随机代码
if num == 0: if num == 0:
code += indentasiStr + "String " + filedName + "=\"" + gen_rand_str() + "\";\n" code += indentasiStr + "String " + filed_name + "=\"" + gen_rand_str() + "\";\n"
elif num == 1: elif num == 1:
code += indentasiStr + "int " + filedName + "=" + str(random.randint(0, 100000)) + ";\n" code += indentasiStr + "int " + filed_name + "=" + str(filed_value) + ";\n"
elif num == 2: elif num == 2:
code += indentasiStr + "float " + filedName + "=" + str(random.randint(0, 100000)) + ";\n" code += indentasiStr + "float " + filed_name + "=" + str(filed_value) + ";\n"
elif num == 3: elif num == 3:
code += indentasiStr + "double " + filedName + "=" + str(random.randint(0, 100000)) + ";\n" code += indentasiStr + "double " + filed_name + "=" + str(filed_value) + ";\n"
elif num == 4: elif num == 4:
code += indentasiStr + "long " + filedName + "=" + str(random.randint(0, 100000)) + ";\n" code += indentasiStr + "long " + filed_name + "=" + str(filed_value) + ";\n"
if isInFunc: if isInFunc:
if num == 0: if num == 0:
code += "if(\"" + filedName + "\".equals(\"" + gen_rand_str() + "\")){}//interference code\n" code += "if(\"" + filed_name + "\".equals(\"" + gen_rand_str() + "\")){}//interference code\n"
else: else:
code += "while(++"+filedName+"<"+filedName+"-1){}" if random.randint(0, 10) % 2 == 0:
# index = gen_rand_str() code += "while(" + filed_name + "++<" + str(filed_value) + "-1){}"
# code += "for(int " + index + "="+str(random.randint(0,10))+";"+index+"<"+filedName+";"+index+"++){}//interference code\n" else:
index = gen_rand_str()
code += "for(int " + index + "="+str(filed_value+1)+";"+index+"<"+filed_name+";"+index+"++){}//interference code\n"
return code return code
def get_brackets(line): def get_brackets(line):
left = line.count("{") left = line.count("{")
right = line.count("}") right = line.count("}")
return left - right return left - right
def is_note(line): def is_note(line):
final_line = line.replace("://","") final_line = line.replace("://", "")
return "//" in final_line or "\t*" in final_line return "//" in final_line or "\t*" in final_line
def process_file_content(path, file_name): def process_file_content(path, file_name):
...@@ -73,17 +78,17 @@ def process_file_content(path, file_name): ...@@ -73,17 +78,17 @@ def process_file_content(path, file_name):
func_level = 0 func_level = 0
isAbstract = False isAbstract = False
for line in lines: for line in lines:
#接口和抽象类 直接跳过 # 接口和抽象类 直接跳过
if "interface" in line or "abstract" in line: if "interface" in line or "abstract" in line:
isAbstract=True isAbstract = True
if isAbstract or is_note(line): if isAbstract or is_note(line):
f_w.write(line) f_w.write(line)
continue continue
#没加{}的if else # 没加{}的if else
if ("if(" in line or "if (" in line) and "{" not in line: if ("if(" in line or "if (" in line) and "{" not in line:
isErrorIf = True isErrorIf = True
#return后有多行代码 # return后有多行代码
if "return" in line or ("throw" in line and not isReturn): if "return" in line or ("throw" in line and not isReturn):
isReturn = True isReturn = True
return_level = get_brackets(line) return_level = get_brackets(line)
...@@ -94,20 +99,19 @@ def process_file_content(path, file_name): ...@@ -94,20 +99,19 @@ def process_file_content(path, file_name):
return_level = 0 return_level = 0
if " class " in line and "{" in line: if " class " in line and "{" in line:
func_level=0 func_level = 0
if ("){\n" in line or ") {\n" in line) and func_level == 0 and not isReturn: if ("){\n" in line or ") {\n" in line) and func_level == 0 and not isReturn:
func_level = get_brackets(line) func_level = get_brackets(line)
elif func_level != 0: elif func_level != 0:
if "new " in line and "{" in line : if "new " in line and "{" in line:
func_level = 0 func_level = 0
else: else:
func_level +=get_brackets(line) func_level += get_brackets(line)
if func_level < 0 : if func_level < 0:
func_level = 0 func_level = 0
# 需要忽略的行
#需要忽略的行
if not isReturn and not isErrorIf and \ if not isReturn and not isErrorIf and \
";\n" in line and \ ";\n" in line and \
"return" not in line and \ "return" not in line and \
...@@ -121,9 +125,9 @@ def process_file_content(path, file_name): ...@@ -121,9 +125,9 @@ def process_file_content(path, file_name):
not is_note(line): not is_note(line):
if random.randint(0, 20) % 2 == 0: if random.randint(0, 20) % 2 == 0:
line = line.replace(";\n", get_rand_code(func_level>0)) line = line.replace(";\n", get_rand_code(func_level > 0))
if ";" in line : if ";" in line:
isErrorIf = False isErrorIf = False
if ";\n" in line and return_level == 0: if ";\n" in line and return_level == 0:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment