From 7b883b2637cd7b3fc05f544095945f2b463847d1 Mon Sep 17 00:00:00 2001 From: jiajingbin Date: Sat, 24 Jul 2021 15:38:35 +0800 Subject: [PATCH] add multi thread --- tests/pytest/insert/schemalessInsert.py | 165 ++++++++++++++++-------- 1 file changed, 113 insertions(+), 52 deletions(-) diff --git a/tests/pytest/insert/schemalessInsert.py b/tests/pytest/insert/schemalessInsert.py index ed8e7ba103..4a818b2b49 100644 --- a/tests/pytest/insert/schemalessInsert.py +++ b/tests/pytest/insert/schemalessInsert.py @@ -461,7 +461,7 @@ class TDTestCase: check full type tag value limit """ # i8 - for t1 in ["-127i8"]: + for t1 in ["-127i8", "127i8"]: input_sql, stb_name, tb_name = self.genFullTypeSql(t1=t1) self.resCmp(input_sql, stb_name) for t1 in ["-128i8", "128i8"]: @@ -470,7 +470,7 @@ class TDTestCase: tdSql.checkNotEqual(code, 0) #i16 - for t2 in ["-32767i16"]: + for t2 in ["-32767i16", "32767i16"]: input_sql, stb_name, tb_name = self.genFullTypeSql(t2=t2) self.resCmp(input_sql, stb_name) for t2 in ["-32768i16", "32768i16"]: @@ -479,7 +479,7 @@ class TDTestCase: tdSql.checkNotEqual(code, 0) #i32 - for t3 in ["-2147483647i32"]: + for t3 in ["-2147483647i32", "2147483647i32"]: input_sql, stb_name, tb_name = self.genFullTypeSql(t3=t3) self.resCmp(input_sql, stb_name) for t3 in ["-2147483648i32", "2147483648i32"]: @@ -488,83 +488,136 @@ class TDTestCase: tdSql.checkNotEqual(code, 0) #i64 - for t4 in ["-9223372036854775807i64"]: + for t4 in ["-9223372036854775807i64", "9223372036854775807i64"]: input_sql, stb_name, tb_name = self.genFullTypeSql(t4=t4) self.resCmp(input_sql, stb_name) - #! 9223372036854775808i64 failed for t4 in ["-9223372036854775808i64", "9223372036854775808i64"]: input_sql = self.genFullTypeSql(t4=t4)[0] code = self._conn.insertLines([input_sql]) tdSql.checkNotEqual(code, 0) # f32 - # for t5 in ["-11.12345f32"]: - # input_sql, stb_name, tb_name = self.genFullTypeSql(t5=t5) - # self.resCmp(input_sql, stb_name) - # # TODO to confirm length - # #for t5 in [f"{-3.4028234663852886*(10**38)-1}f32", f"{3.4028234663852886*(10**38)+1}f32"]: - # for t5 in [f"{-3.4028234663852886*(10**38)-1}f32", f"{3.4028234663852886*(10**38)+1}f32"]: - # print("tag2") - # input_sql = self.genFullTypeSql(t5=t5)[0] - # print(input_sql) - # code = self._conn.insertLines([input_sql]) - # tdSql.checkNotEqual(code, 0) - - # # f64 - # for t6 in ["-22.123456789f64"]: + for t5 in [f"{-3.4028234663852885981170418348451692544*(10**38)}f32", f"{3.4028234663852885981170418348451692544*(10**38)}f32"]: + input_sql, stb_name, tb_name = self.genFullTypeSql(t5=t5) + self.resCmp(input_sql, stb_name) + # * limit set to 4028234664*(10**38) + for t5 in [f"{-3.4028234664*(10**38)}f32", f"{3.4028234664*(10**38)}f32"]: + input_sql = self.genFullTypeSql(t5=t5)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f64 #!bug stack smashing detected ***: terminated Aborted + #for t6 in [f'{-1.79769313486231570814527423731704356798070567525844996598917476803157260780*(10**308)}f64', f'{-1.79769313486231570814527423731704356798070567525844996598917476803157260780*(10**308)}f64']: + # for t6 in [f'{-1.79769*(10**308)}f64', f'{-1.79769*(10**308)}f64']: + # print("f64?") # input_sql, stb_name, tb_name = self.genFullTypeSql(t6=t6) # self.resCmp(input_sql, stb_name) # TODO to confirm length - # TODO binary nchar + # binary + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t,t1="{self.getLongName(16374, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t,t1="{self.getLongName(16375, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # nchar + # * legal nchar could not be larger than 16374/4 + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t,t1=L"{self.getLongName(4093, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t,t1=L"{self.getLongName(4094, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + def colValueLengthCheckCase(self): """ check full type col value limit """ # i8 - for c1 in ["-127i8"]: + for c1 in ["-127i8", "127i8"]: input_sql, stb_name, tb_name = self.genFullTypeSql(c1=c1) self.resCmp(input_sql, stb_name) - # TODO to confirm - # for c1 in ["-131i8", "129i8"]: - # input_sql = self.genFullTypeSql(c1=c1)[0] - # print(input_sql) - # code = self._conn.insertLines([input_sql]) - # tdSql.checkNotEqual(code, 0) - - #i16 - for c2 in ["-32767i16"]: - print("tag1") - input_sql, stb_name, tb_name = self.genFullTypeSql(c2=c2) - self.resCmp(input_sql, stb_name) - for c2 in ["-32768i16", "32768i16"]: - input_sql = self.genFullTypeSql(c2=c2)[0] + for c1 in ["-128i8", "128i8"]: + input_sql = self.genFullTypeSql(c1=c1)[0] print(input_sql) code = self._conn.insertLines([input_sql]) tdSql.checkNotEqual(code, 0) - #i32 + # i16 + for c2 in ["-32767i16"]: + input_sql, stb_name, tb_name = self.genFullTypeSql(c2=c2) + self.resCmp(input_sql, stb_name) + for c2 in ["-32768i16", "32768i16"]: + input_sql = self.genFullTypeSql(c2=c2)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # i32 for c3 in ["-2147483647i32"]: input_sql, stb_name, tb_name = self.genFullTypeSql(c3=c3) self.resCmp(input_sql, stb_name) - for c3 in ["-2147483650i32", "2147483648i32"]: + for c3 in ["-2147483648i32", "2147483648i32"]: input_sql = self.genFullTypeSql(c3=c3)[0] code = self._conn.insertLines([input_sql]) tdSql.checkNotEqual(code, 0) - #i64 + # i64 for c4 in ["-9223372036854775807i64"]: input_sql, stb_name, tb_name = self.genFullTypeSql(c4=c4) self.resCmp(input_sql, stb_name) - # ! 9223372036854775808i64 failed - # !for c4 in ["-9223372036854775808i64", "9223372036854775808i64"]: - # ! input_sql = self.genFullTypeSql(c4=c4)[0] - # ! code = self._conn.insertLines([input_sql]) - # ! tdSql.checkNotEqual(code, 0) + for c4 in ["-9223372036854775808i64", "9223372036854775808i64"]: + input_sql = self.genFullTypeSql(c4=c4)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f32 + for c5 in [f"{-3.4028234663852885981170418348451692544*(10**38)}f32", f"{3.4028234663852885981170418348451692544*(10**38)}f32"]: + input_sql, stb_name, tb_name = self.genFullTypeSql(c5=c5) + self.resCmp(input_sql, stb_name) + # * limit set to 4028234664*(10**38) + for c5 in [f"{-3.4028234664*(10**38)}f32", f"{3.4028234664*(10**38)}f32"]: + input_sql = self.genFullTypeSql(c5=c5)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f64 + for c6 in [f'{-1.79769313486231570814527423731704356798070567525844996598917476803157260780*(10**308)}f64', f'{-1.79769313486231570814527423731704356798070567525844996598917476803157260780*(10**308)}f64']: + input_sql, stb_name, tb_name = self.genFullTypeSql(c6=c6) + self.resCmp(input_sql, stb_name) + # * limit set to 1.797693134862316*(10**308) + for c6 in [f'{-1.797693134862316*(10**308)}f64', f'{-1.797693134862316*(10**308)}f64']: + input_sql = self.genFullTypeSql(c6=c6)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # binary + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t c0=f,c1="{self.getLongName(16374, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + # ! bug code is 0 + # input_sql = f'{stb_name},t0=t c0=f,c1="{self.getLongName(16375, "letters")}" 1626006833639000000ns' + # code = self._conn.insertLines([input_sql]) + # tdSql.checkNotEqual(code, 0) + + # nchar + # * legal nchar could not be larger than 16374/4 + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t c0=f,c1=L"{self.getLongName(4093, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t c0=f,c1=L"{self.getLongName(4094, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) def tagColIllegalValueCheckCase(self): + """ test illegal tag col value """ @@ -804,14 +857,14 @@ class TDTestCase: for i in range(count): d_stb_d_tb_list.append(self.genFullTypeSql(t0="f", c0="f")) s_stb_s_tb_list.append(self.genFullTypeSql(t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"')) - s_stb_s_tb_a_col_a_tag_list.append(self.genFullTypeSql(t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"'), ct_add_tag=True) - s_stb_s_tb_m_col_m_tag_list.append(self.genFullTypeSql(t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"'), ct_min_tag=True) - return d_stb_d_tb_list, s_stb_s_tb_list, s_stb_s_tb_a_col_a_tag_list + s_stb_s_tb_a_col_a_tag_list.append(self.genFullTypeSql(t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"', ct_add_tag=True)) + s_stb_s_tb_m_col_m_tag_list.append(self.genFullTypeSql(t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"', ct_min_tag=True)) + return d_stb_d_tb_list, s_stb_s_tb_list, s_stb_s_tb_a_col_a_tag_list, s_stb_s_tb_m_col_m_tag_list def genMultiThreadSeq(self, sql_list): tlist = list() for insert_sql in sql_list: - t = threading.Thread(target=self._conn.insertLines,args=insert_sql) + t = threading.Thread(target=self._conn.insertLines,args=([insert_sql[0]],)) tlist.append(t) return tlist @@ -819,10 +872,15 @@ class TDTestCase: for t in tlist: t.start() for t in tlist: - t.join() + tlist[t].join() def stbInsertMultiThreadCheckCase(self): - pass + """ + thread input different stb + """ + input_sql = self.genSqlList()[0] + print(input_sql) + self.multiThreadRun(self.genMultiThreadSeq(input_sql)) def run(self): print("running {}".format(__file__)) @@ -846,10 +904,12 @@ class TDTestCase: # self.nowTsCheckCase() # self.dateFormatTsCheckCase() # self.illegalTsCheckCase() - self.tagValueLengthCheckCase() - # ! 问题很多 - # ! self.colValueLengthCheckCase() + # ! confirm double + # self.tagValueLengthCheckCase() + + # ! bug + # self.colValueLengthCheckCase() # self.tagColIllegalValueCheckCase() @@ -870,6 +930,7 @@ class TDTestCase: # ! bug # self.batchErrorInsertCheckCase() + self.stbInsertMultiThreadCheckCase()