From bdab825bbf4176a4cd77f00ef6d43d0b87a84735 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Mon, 28 Sep 2020 17:00:25 +0200 Subject: Added unicode test --- generate.py | 20 ++++++++++-- generated.c | 102 +----------------------------------------------------------- main.c | 56 ++++++++++++++++++++++++++++++++- 3 files changed, 73 insertions(+), 105 deletions(-) mode change 100644 => 100755 generate.py diff --git a/generate.py b/generate.py old mode 100644 new mode 100755 index ba3b7d1..7d6d767 --- a/generate.py +++ b/generate.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + # **************************************************************************** # # # # ::: :::::::: # @@ -6,7 +8,7 @@ # By: cacharle +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/02/06 18:13:26 by cacharle #+# #+# # -# Updated: 2020/02/06 19:36:46 by cacharle ### ########.fr # +# Updated: 2020/09/28 16:47:31 by cacharle ### ########.fr # # # # **************************************************************************** # @@ -27,6 +29,14 @@ ULONG_INT_MAX = 18446744073709551616 CHARS = (list(string.ascii_lowercase) + list(string.ascii_uppercase) + list(string.punctuation) + list(string.digits)) +CHARS_UNICODE = ( + "喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏" + "⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)" + "൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ" + "¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + "ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + "ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď" +) CHARS.remove("\"") CHARS.remove("\\") CHARS.extend([r"\t", r"\n", r"\r", r"\v", r"\f", "\\\\"]) @@ -63,8 +73,10 @@ class Generator: self.precision_point_rate = 4 self.possible_conv ="diuxXcsp%" if options["bonus"]: + self.bonus = True self.possible_flags = "#0- +'" else: + self.bonus = False self.possible_flags = "0-" self.possible_conv_len = len(self.possible_conv) self.pool = [] @@ -129,11 +141,13 @@ class Generator: }[conv] def _flags(self, conv): - return self._filter_flags( + flags = self._filter_flags( "".join([choice(self.possible_flags) for _ in range(randrange(1, self.flags_max + 1))]), conv ) + if self.bonus: + flags += choice(["", "", "", "h", "hh", "l", "ll"]) def _filter_flags(self, flags, conv): if "+" in flags and conv in "psxXcu": @@ -179,7 +193,7 @@ class Generator: def _gen_string(self): if randrange(100) < 5: return "NULL" - return "".join([choice(CHARS) for _ in range(randrange(self.str_max_len))]) + return "".join([choice(CHARS_UNICODE if self.bonus else CHARS) for _ in range(randrange(self.str_max_len))]) def _write_header(self): self.output_file.write("#include \"header.h\"\n\nvoid generated_test(void)\n{\n\t") diff --git a/generated.c b/generated.c index bc98154..72d2cc1 100644 --- a/generated.c +++ b/generated.c @@ -2,104 +2,4 @@ void generated_test(void) { - ASSERT_PRINTF("%--87.48u%---86.89d%--*.171i" ,575753980u,-1706753103,-61,-1026886559); - ASSERT_PRINTF("%53c%0189.51d%-103.21d%*p%102c" ,-27,231647176,-1119242596,-94,(void*)17541392615378030860lu,80); - ASSERT_PRINTF("%-119.98X%--*.57i" ,3622566783u,-40,1402091020); - ASSERT_PRINTF("%-49.148X%-144c%---47.*x%-140.*X%-115.118s" ,1788014179u,-42,-140,1771987060u,-145,3144147879u,"H\vYsk&|8>-[gth=Kx5_0Qr`*vE@c\fN",4236150522u); - ASSERT_PRINTF("%-144.75d%--78.X%-190p%00041.*x%-23.70%" ,-265040099,1164608268u,(void*)17615309680892657552lu,106,3685356723u); - ASSERT_PRINTF("%--162.153s" ,"R5lGI]=d)JsY%"); - ASSERT_PRINTF("%-84p" ,(void*)4775667885626284982lu); - ASSERT_PRINTF("%0120.60i%--186c%23.91s" ,66904061,123,"+5sL\fbw~DLaeBVx~"); - ASSERT_PRINTF("%--3p%-149.169X" ,(void*)2930828309239637750lu,2340073959u); - ASSERT_PRINTF("%-44.191X%-36.29%%41p%-138c%00052.150X" ,1190215424u,(void*)3018354647187363245lu,46,1472975837u); - ASSERT_PRINTF("%-166.189X%-26.100%" ,207473590u); - ASSERT_PRINTF("%-153.61d%0105.36i%-77.70u%-80p" ,1957997024,1534377111,2603846243u,(void*)17500981794874329626lu); - ASSERT_PRINTF("%-70p%--20p" ,(void*)722858610728296101lu,(void*)4519852823670228835lu); - ASSERT_PRINTF("%---118.103i%--28.47u%88.166s%0123i" ,-704112513,3545495823u,"CUX`\\o",-1784647328); - ASSERT_PRINTF("%-96.78u%32s" ,3598761892u,"^\vHgagCH)m{hy[Q"); - ASSERT_PRINTF("%0196.169i%-32c" ,1040966160,53); - ASSERT_PRINTF("%-c%-32.61i%-78.13s" ,-70,-739803298,"sholGoP@h9#T#PjVsCF+Fx",(void*)604898635787958238lu,27,1458757178,209663612); - ASSERT_PRINTF("%-15.28X%157c%--35.189u%100.62s" ,2052648042u,9,1026341267u,"Cf\t3!DOK[M/t1>t1jC=tLBN:~c"); - ASSERT_PRINTF("%---*c%-14.111u" ,73,72,2447307730u); - ASSERT_PRINTF("%--*.18u%-85c%189.170s%150c%-141.*i" ,143,1032677539u,69,"H.\ni-k",-125,32,-645299566); - ASSERT_PRINTF("%-197p%03.35d%-101.10%" ,(void*)16358200459980665292lu,1110276224); - ASSERT_PRINTF("%00144.60X%--160.157%" ,132210504u); - ASSERT_PRINTF("%0135.*%%--39c%095.16i%0120.39x%8.33s" ,-193,15,143560664,578664161u,"V0_("); - ASSERT_PRINTF("%000*.137X" ,3,2361478588u); - ASSERT_PRINTF("%-138.17%%--*p%-14p%---167p%--47.91u" ,-13,(void*)10740891812216954868lu,(void*)2144050129394666231lu,(void*)11614427029332157430lu,2673098069u); - ASSERT_PRINTF("%-57.*X%-194.116u%-140.134d" ,-70,3949637465u,1974205093u,335572653); - ASSERT_PRINTF("%---77.62s%-46.195i" ,"^CQ{\vkSl[ceD\f,~A-P",-2130843036); - ASSERT_PRINTF("%-*.152u%-78.92s%--44.57u" ,-157,804520638u,"#W|lXhS\\x^i",835290868u); - ASSERT_PRINTF("%--140p%-92.95s%-102.115i" ,(void*)15758905526233078610lu,NULL,-1446158942); - ASSERT_PRINTF("%-157p%-174p%-131.*X%0146.195x%--150p" ,(void*)7878202630734999894lu,(void*)8508579576981908212lu,189,42041319u,694227551u,(void*)1547752975271419156lu); - ASSERT_PRINTF("%--*p%0*.119x%-133.14d%0156.113d%-40c" ,19,(void*)9420508942149040314lu,5,3622177574u,267981691,-545348429,63); - ASSERT_PRINTF("%-190.90x%-117.173%" ,2497145861u); - ASSERT_PRINTF("%00183.%%-44.48d" ,2066635919); - ASSERT_PRINTF("%0*.29u%00079.55u%30.43s%-17.*s" ,-189,2491194593u,1621139216u,"QA`2Any5ew*Fx>\f|\t/",142,"z|:\r$F'+\f"); - ASSERT_PRINTF("%*p%-114.86%%-27.22d" ,-112,(void*)10233099178825149944lu,500193481); - ASSERT_PRINTF("%--74.82s%--127.29X%--153c" ,"T6Hx+%F\t",3836960075u,-25); - ASSERT_PRINTF("%-38.54x%--189c%-21.79s" ,4019235240u,88,"M_ +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/06 18:13:45 by cacharle #+# #+# */ -/* Updated: 2020/04/02 20:46:17 by charles ### ########.fr */ +/* Updated: 2020/09/28 16:40:52 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -97,6 +97,60 @@ int main(int argc, char **argv) /* ASSERT_PRINTF("%.6p", NULL); */ /* ASSERT_PRINTF("%.7p", NULL); */ +#ifdef FT_PRINTF_TEST_BONUS + ASSERT_PRINTF("%ls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%ls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%ls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%ls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%100ls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%100ls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%100ls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%200ls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%.30ls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%.30ls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%.30ls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%.30ls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%100.30ls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%100.30ls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%100.30ls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%200.30ls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%lls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%lls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%lls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%lls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%100lls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%100lls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%100lls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%200lls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%.30lls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%.30lls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%.30lls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%.30lls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%100.30lls", L"喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%100.30lls", L"⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏)"); + ASSERT_PRINTF("%100.30lls", L"൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ"); + ASSERT_PRINTF("%200.30lls", L"¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ" + L"ÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéê" + L"ëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎď"); + ASSERT_PRINTF("%ls", L"喀喁喂喃善喅喆\0喇喈喉喊喋喌喍喎喏"); + ASSERT_PRINTF("%lls", L"喀喁喂喃善喅喆\0喇喈喉喊喋喌喍喎喏"); +#endif + + /* saved_test(); */ return 0; } -- cgit