From ed4d0776ede99ebb776542fca3bde8a1c4a9e7bb Mon Sep 17 00:00:00 2001 From: Sh0g0-1758 Date: Mon, 17 Feb 2025 06:02:32 +0530 Subject: [PATCH] test: fix broken stress tests --- githooks/pre-commit | 1 - stress/tests/bro.c | 7 +++++ stress/tests/test1.c | 7 +++++ stress/tests/test2.c | 51 ++++++++++++++++++-------------- stress/tests/test4 | Bin 0 -> 17912 bytes stress/tests/test4.c | 67 +++++++++++++++++++++---------------------- stress/tests/test7.c | 36 +++++++++++------------ 7 files changed, 94 insertions(+), 75 deletions(-) create mode 100644 stress/tests/bro.c create mode 100755 stress/tests/test4 diff --git a/githooks/pre-commit b/githooks/pre-commit index 0eadb87..bf25943 100644 --- a/githooks/pre-commit +++ b/githooks/pre-commit @@ -4,7 +4,6 @@ echo "Running pre-commit formatting hook" files=$(git diff --cached --name-only --diff-filter=ACM | \ grep -E "\.(c|cpp|h|hpp|cc|hh)$" | \ - grep -v "^tests/" | \ grep -v "^test_framework/") for file in $files; do diff --git a/stress/tests/bro.c b/stress/tests/bro.c new file mode 100644 index 0000000..ad8246b --- /dev/null +++ b/stress/tests/bro.c @@ -0,0 +1,7 @@ +int main(void) { + return ((((0 * 123456789) << 11) + ((999999999 ^ -656452749) >> 7)) * + ((552512879 & 33777832) | ((33777729 + 129270400) % 97)) + + ((666666666 * 1337320320) - ((444444444 ^ 0) << 5)) * + ((0 & 0) | ((1933253 + 32767) % 89)) + + ((32868 * 32767) ^ ((0 - 123456789) << 3))); +} \ No newline at end of file diff --git a/stress/tests/test1.c b/stress/tests/test1.c index 6fb7c18..80f73b1 100644 --- a/stress/tests/test1.c +++ b/stress/tests/test1.c @@ -96,6 +96,12 @@ int main(void) { return -1; final: +#ifdef __clang__ + // clang gives undefined behavior for unsequenced modification and access to + // the same variable. gcc seems to respect the precedence of C operators (like + // scarlet) and thus gives a defined result. + return 245; +#else return (o = 9999999) + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((a = 123456789) * (b = 987654321)) / ((c = 555555555) + 1)) % ((d = 777777777) * (e = 888888888))) * @@ -147,4 +153,5 @@ return (o = 9999999) + ((((((((((((((((((((((((((((((((((((((((((((((((((((((((( ((((m = 222222212) ^ (n = 111111101)) & ((o = 999999989) | (p = 888888877))) + (((a = 777777766) >> 10) * ((b = 666666655) << 13))))))))))))))))))))))))))))))))))))))); +#endif } diff --git a/stress/tests/test2.c b/stress/tests/test2.c index 19f66ce..4d65841 100644 --- a/stress/tests/test2.c +++ b/stress/tests/test2.c @@ -1,25 +1,25 @@ int main(void) { - int current_temp; - int target_temp; - int heat_power; - int fan_speed; - int humidity; - int pressure; - int safety_threshold; - int emergency_limit; - int system_status; - int error_code; - int valve_position; - int flow_rate; - int sensor1; - int sensor2; - int sensor3; - int alert_level; - int warning_code; - int backup_power; - int efficiency; - int delta_t; - int time_remaining; + int current_temp = 0; + int target_temp = 0; + int heat_power = 0; + int fan_speed = 0; + int humidity = 0; + int pressure = 0; + int safety_threshold = 0; + int emergency_limit = 0; + int system_status = 0; + int error_code = 0; + int valve_position = 0; + int flow_rate = 0; + int sensor1 = 0; + int sensor2 = 0; + int sensor3 = 0; + int alert_level = 0; + int warning_code = 0; + int backup_power = 0; + int efficiency = 0; + int delta_t = 0; + int time_remaining = 0; start: if ((current_temp = 72) < 100) { @@ -100,6 +100,12 @@ int main(void) { return -1; final: +#ifdef __clang__ + // clang gives undefined behavior for unsequenced modification and access to + // the same variable. gcc seems to respect the precedence of C operators (like + // scarlet) and thus gives a defined result. + return 104; +#else return (pressure = 243) + ((((((((((((((((((((current_temp = 180) * (heat_power = 450)) / ((target_temp = 200) + 1)) % @@ -137,4 +143,5 @@ int main(void) { ((valve_position = 85) ^ (flow_rate = 170))) + (((sensor3 = 295) - (sensor2 = 275)) * ((sensor1 = 350) + (sensor2 = 278)))); -} \ No newline at end of file +#endif +} diff --git a/stress/tests/test4 b/stress/tests/test4 new file mode 100755 index 0000000000000000000000000000000000000000..016862f33a0780d240ffe9768f3986c3f53d8516 GIT binary patch literal 17912 zcmeG@ZEzdMb$bApAEHE%q9{@yHer2KVq}7!VkA)?l&F)yMzm~8Y%JBv83c|XOah>R zgDiSdOEDzJ7??Iyr}^k4olGW^G;La?jVIL)wE-AfVl`@pYE(z*C{s37TDn#mxK=xe zlL~$Bb{_~|sJPSgR|m`Cy?t-r*S>wXw|lrftsXjHQxrzU&UQ1zda4DbM>cHRB`W}W z*fzEduIt%4Rtk8DNfYfo0zj)MH*N2S<&tg(h;j{BSp=>XWJZuYM2K?tD;X|Y2r}6Z zlrx(oPIQ8GWkQZ1(ew74qMcdbv?LQOl*8C$ngv5f#*d&=#$~gFB!?)-~Yzmqf)NKX{upX_^==| zf@JS8kTc^V+dl}&SzCqYUz3L4A}Wh+`dXB9Dm2C!i*C8{l>QyFrt1p9{(@U!<)UXwF6G+I{Gu`_OBF zzHSjcOw%BuUM*^PB8C?91VTXZp7Llzfski3@SM)D8ROf<4j$^;*Q>R=+Fe`o^^Q)a z^&Rcke0oIp2cm`^IojVl8V>14J%gh<=<)}{A*o#xtcx;Y1Qqj7jFbX6`b+r|TOFvt zsAK*i?e+7YhA`V;#uJ6^U%G#sHG-a%_czh!q{8wZ(N1*2Z|)Iv977xvDsu(&!f~H3 zpi_>aOs0U2`9mdJK*xM3mSO~o5hzBW7=dC0iV-MApcsK-1TX^cIv#w_9lulVPVyhL zFy=m&GHkh7cYM11J7$1#TfYS4+{Q1%)zR2v^5-`G6<|Y-#{ELR?I(SS>mPF`e&mkd z&OCZlZA-QNwR>XMRZx(tivsK2A(x}^tf>#^p96|}g8wdp?OCG^O#c?v!E{A#&e3=V z8NVYT@CQu(t%C@f?zs~gclzJHBdK2OP%mwta=fwub{GOns541*W@4-~Igm}vrssImY(h;X z)s)*i>kjNT+|+*mQN|>aM1l#1vY{@`O5_RHsK$^~&t_%OCH& zqR!&><%)U(cNj@^cD;H7eY#mg{CzZMQe=4y1k(b@#i|^Uid(B=Oz!y~d`@NM>tdrYVzn({Uk_ z9GJl_*_Bx(rGUZtq&hE5oY;HlPtk-jm41)sjkKVV?Qc3>nFYVzYBQaii_afRsCSa; zo%CEOcKdcb)tgW=Ni~B;O*88JNNP($y_@X6E8N;s`Y&E|D*@_D5;N&+W78CRVpD`W zP3go{uyb}DZ0IK6Rwf~s9qPq|nuWMms?!Pe5{&11^-|(;QoXiC1=nYi{WC)MS7-b` zMBNIg<%y{R?a)ut1ZtmHx)K5n!H}BnAXkNjOYszBz(u%SAOjR|e7ZxO5j|;sei>t6Vq%FI&DoLE zR!D2;8m0z}-OYIFFb=@Ljb9y6$koKZL&w*vw{e)%Tk#af+w_|dQgZvwNUFOqg$H*0 zxnJBR3kiH!czidW(q)Ryar8K!UD^12DTd@f%s`vBr|Iv+sZvP2k<>0T^)98erRe@l zJmtqbd|+C*-xxX8Mt2)!#1YI0$A!z=ul!EsTj8JQax%_xR)jouT)@ew5{De89~k|K zP8(QT4~c#SZczxAG9?VWUG_koFksK8oCgh5fR+rT6zGBpMNA=>+~04yBEq&ek%AH}2` zzv-xaw)_m+vwHi7IyRU;7ot4c{UY%}9SiC-;Qtfg$1U7us#Vo5+Ip9j+P}xaG!TlV z7=dC0iV-MApcsK-1d0(TMxYphVg!m2C`Mqh2+;S6^nD_1-OOTc!l1TP;`Biz{NiDj z@_GSRNu0ieTqAMXiLI76eGiHIH!Rc+KShKQ{|5dz2!*~)9LCKj6#PLE%T3w7M4;>? z2`eRRkg!fd0#b~nC&%HJ zVQM!eVVi2=8QGtoNu2zW>i_QmeINd7YNYQ{5BB!%aBdzLjD?Jtv#rC`;c9K}ikWEp z^X;9k*3KqLHb0RSpQwtUHpx$6&29Q3?tBhn$eCg?+vkDd0c2{0|HULrJ_!wq!ha8> ztnJF@k*Yif95$@k&JQb2KHEMmRf=MY*m1)xFDl!ivZ>_ z@Ox`0wi9sKxf|c2K(YN0E`9$%*!KV%__VxJY}0@Z9$X1mEWCsVLhyn`>16h*9S#McF{a{(Va?`55T5RZP zcy5&fj`0nwvT}E&9Y_2iWD18{2;;3N%FnBoA;18^KU5lRmyxZXGhWN@BzRBQg3|^}9h8KCqtGr(4TW0u5+qzo*@FZ{3 zdAW-_`+29qHyV6HoVOdi$>1w=UUrZ-U10evZ=2*UTT2bE+s)f2 zdDA2>JBH@TO7%-y5VyXkZ zz&5Upc|dm5W9T98ID01Mf$1H$0%9rcVwb#^iw@CohSVNWWO%VcZqW;&St-}dB_tT4|#_p;ZQghZH|SW4TOBn1|E-yLL(f! z@QyT(MZ$*eHNuhRDD*RgQlh~->WL0hb08do2JcV-&IUap-?IT9MCF;79@7`XJ3bor z_{3O%cCQ|d=3|VJ8JF>H84d^amgsQUA8rYH@Bl|k)a!|i>P8E=0#Yr89yP?Z)8%FV zLw=kgepSI4ri8tdv-03`UxAjF<%8KN8E`&bj33tpHde*P%$L}b8GuvLzi6R%NII>v z05wY=ToqVtRQCuR{lkK%eH3_$PU|L<2$zq;KiZ{r8_{2aio$9ct;2}^Rj4fH|NZ)P z!PK*yrJST;0WPNJFHL@UmRQyumrb!6R^nWc$J!6zUtufr>oIEmDO46ahqM#|;v}X5 z_+gU{Pn@0tB2+g6y_(hM<4LV8KwoZiFj}_~eXHcR>e*-NC$0tf7|?5M^^Dd>)bcT; z<09E9C~~>SfA^>fsyNWmA1nW> zKzEXG0sI=!*A?JYod)`H8?2@+dCQJ?BSxDm3@55Qg8|L(_!$tQ2Fz-3Q!bpo(u|AEm6%AJH@==;27N8y3f_RI0v5m3TU24#51nptUJzNdJO8C zFBS}rgGd3U0jKdkR-7wvme8~VkMHeQHT9AG8XWuDf9#RH{e8VahRIV?-Lloa|8b@r zJal;9-b32q0|$<%N42AS_Z?C}!g?yLhYp{8(1A1E=P^9Y>;z~*L_U73N6|E2G^`E7 z?1{(J`VIq^FA&mVFiSG%H(a#AXjIC|b8&FAje3M<-WEN`_WsjzdAIS*oEa`y97e~3 zF#Q8GA_5Lm4VHX*WQ@5&@HBAwLopZ3++%vg7%w0V#sYBq5uTfZYwx~3c$oN^$vzAZ z3+D2Thron@Mntrn)FV-Ne7q0Qpe+IqM-*T#982aJ8xP?-yo5LXI7(+6XI;Piz2kg*aCgoeUY_Y4k3 z^pk|anNOYS5HqSG8Ad8XH_@*Fao-HLAk6KeSkFPzzF9V#yi`ZH9{zD}OY-+S?~A-x za1CBqx&SGZx1RgmP{<5*n%{_w&#^*zdX5rw5~GAx`HuqqKVff7{?q#af@GiG2Uz|0 zfIPknAbEOUKyXspMISNFBv1SN0MPK!PxAEsfgnC#3k&KfEYARfdw-Ir{XRi@k3#+v zAHnBA9^WMp4x1xUBy5$a)qhE56HvjJl03cNAefSjWZ&BV&pk%M^K_9ZdK2|WRY)`0t7!u9{2Qx{`W`$f^XzICS0)U`!kC?trG~+doLmV z%lZEoQa-8b4Y$5qwyxBS3P5|BXey)hSvCeu@|+r12;6_o0IC z6X?AZtt082yp^ADg8u}vjskgFw`QAx2!;3rwty2I*MB%fWIw;2#1{lmQu2nw{KrCa zG>%^Z8nTc)z3)r4AU9(@=5^sh@&vQcR4AVpXcaPKhcu8J;rF0|G_p_Yv1%!A<(J(d zab^bs(j> 3) + ((header_length = 123456789) << 4) > - ((payload_size = 999999999) ^ (checksum = 888888888))) { + if (((packet_size = 981) >> 3) + ((header_length = 129) << 4) > + ((payload_size = 9) ^ (checksum = 8))) { if ((((error_bits = packet_size * 31) % 61) + ((packet_id = header_length >> 5) * 23)) < - ((buffer_space = payload_size ^ checksum) + 777777777)) { - queue_length = ((timeout = 666666666) & (retry_count = 555555555)) | - ((max_retries = 444444444) ^ (delay = 333333333)); + ((buffer_space = payload_size ^ checksum) + 7)) { + queue_length = ((timeout = 6) & (retry_count = 5)) | + ((max_retries = 4) ^ (delay = 3)); goto quantum_path; } else { if ((((fragment_size = error_bits + 29) % 59) * @@ -51,7 +50,7 @@ int main(void) { ((retry_count = max_retries << 5) + (delay = fragment_size >> 3))) { if ((((total_fragments = processed_count * 31) % 67) * ((dropped_count = bandwidth + 71) << 4)) < - ((latency = packet_size ^ 13) + 111111111)) { + ((latency = packet_size ^ 13) + 1)) { goto entropy_path; } goto chaos_path; @@ -61,10 +60,10 @@ int main(void) { entropy_path: if ((((error_bits = packet_id * 41) >> 7) + ((buffer_space = queue_length + 97) << 3)) > - ((timeout = retry_count ^ max_retries) - 222222222)) { + ((timeout = retry_count ^ max_retries) - 2)) { if ((((delay = fragment_size * 43) % 71) * ((total_fragments = processed_count + 83) >> 5)) != - ((dropped_count = bandwidth & latency) + 333333333)) { + ((dropped_count = bandwidth & latency) + 3)) { goto chaos_path; } goto final_collapse; @@ -72,25 +71,24 @@ int main(void) { goto quantum_path; chaos_path: - if ((((packet_size = header_length * 47) % 73) + + if ((((packet_size = header_length * 4) % 789) + ((payload_size = checksum + 89) << 6)) < - ((error_bits = packet_id ^ buffer_space) - 444444444)) { + ((error_bits = packet_id ^ buffer_space) - 3454)) { if ((((queue_length = timeout * 53) >> 4) * ((retry_count = max_retries + 79) % 67)) > - ((delay = fragment_size & total_fragments) + 555555555)) { + ((delay = fragment_size & total_fragments) + 5)) { goto void_path; } - goto final_collapse; } - goto entropy_path; + goto final_collapse; void_path: if ((((processed_count = dropped_count * 59) % 79) + ((bandwidth = latency + 101) << 5)) != - ((packet_size = header_length ^ payload_size) - 666666666)) { + ((packet_size = header_length ^ payload_size) - 6)) { if ((((checksum = error_bits * 61) >> 6) * ((packet_id = buffer_space + 103) % 83)) < - ((queue_length = timeout & retry_count) + 777777777)) { + ((queue_length = timeout & retry_count) + 7)) { goto final_collapse; } goto singularity_start; @@ -98,6 +96,7 @@ int main(void) { goto chaos_path; final_collapse: + packet_size = 0; return ( (((packet_size * header_length) << 11) + ((payload_size ^ checksum) >> 7)) * diff --git a/stress/tests/test7.c b/stress/tests/test7.c index b4b5f7c..403368d 100644 --- a/stress/tests/test7.c +++ b/stress/tests/test7.c @@ -1,22 +1,22 @@ int main(void) { - int packet_size; - int header_length; - int payload_size; - int checksum; - int error_bits; - int packet_id; - int buffer_space; - int queue_length; - int timeout; - int retry_count; - int max_retries; - int delay; - int fragment_size; - int total_fragments; - int processed_count; - int dropped_count; - int bandwidth; - int latency; + int packet_size = 0; + int header_length = 0; + int payload_size = 0; + int checksum = 0; + int error_bits = 0; + int packet_id = 0; + int buffer_space = 0; + int queue_length = 0; + int timeout = 0; + int retry_count = 0; + int max_retries = 0; + int delay = 0; + int fragment_size = 0; + int total_fragments = 0; + int processed_count = 0; + int dropped_count = 0; + int bandwidth = 0; + int latency = 0; singularity_start: if (((packet_size = 123456) >> 3) + ((header_length = 654321) << 4) >