From 31dd5f73c49f9f4d2286dc1ac6cf155b66a14ab9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 13:42:24 +0000 Subject: [PATCH 1/3] chore: start refactor work Agent-Logs-Url: https://github.com/Marcogn/3ds-zip-extractor/sessions/b66ae80f-ffda-423c-b45c-5fe9e2243879 Co-authored-by: Marcogn <54799180+Marcogn@users.noreply.github.com> --- 3ds-zip-extractor.3dsx | Bin 1532204 -> 1533508 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/3ds-zip-extractor.3dsx b/3ds-zip-extractor.3dsx index ccd1483994a7d091a228d4a151347e545504c4c1..fe8bfdbe6e0513788699c2133c1bfd8d8836bd6a 100644 GIT binary patch delta 127615 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 LoWG>nI@$jRI?=a2 delta 125964 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%0ALe=k;c0F3%hQz&C`E8Y{x|28e`ItdHR?q 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 From 130f35e3ad7533c507e214e0a86470c19083d321 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:00:32 +0000 Subject: [PATCH 2/3] refactor: split main.c into modules; add tests, CI, integrity, hardening Agent-Logs-Url: https://github.com/Marcogn/3ds-zip-extractor/sessions/b66ae80f-ffda-423c-b45c-5fe9e2243879 Co-authored-by: Marcogn <54799180+Marcogn@users.noreply.github.com> --- .github/workflows/build.yml | 73 + .gitignore | 19 +- 3ds-zip-extractor.3dsx | Bin 1533508 -> 0 bytes 3ds-zip-extractor.smdh | Bin 8256 -> 0 bytes CHANGELOG.md | 56 + CLAUDE.md | 26 +- Makefile | 1 + README.md | 42 +- docs/ARCHITECTURE.md | 93 + include/config.h | 75 + include/download.h | 28 + include/file_browser.h | 35 + include/gdrive.h | 22 + include/integrity.h | 27 + include/led.h | 20 + include/queue.h | 19 + source/archive_extractor.c | 147 +- source/archive_extractor_detect.c | 98 + source/config.c | 254 ++ source/download.c | 184 ++ source/file_browser.c | 133 ++ source/gdrive.c | 73 + source/integrity.c | 209 ++ source/led.c | 25 + source/main.c | 1255 +--------- source/queue.c | 78 + tests/3ds_stubs.h | 22 + tests/Makefile.host | 88 + tests/fixtures/config_bom.txt | 1 + tests/fixtures/config_empty.txt | 4 + tests/fixtures/config_long_url.txt | 1 + tests/fixtures/config_malformed.txt | 6 + tests/fixtures/config_many_urls.txt | 60 + tests/fixtures/config_negative_retries.txt | 2 + tests/fixtures/config_valid.txt | 8 + tests/make_fixtures.sh | 139 ++ tests/test_archive_detect.c | 81 + tests/test_config.c | 123 + tests/test_gdrive.c | 92 + tests/test_sha256.c | 83 + tests/unity.c | 2487 ++++++++++++++++++++ tests/unity.h | 1868 +++++++++++++++ 42 files changed, 6810 insertions(+), 1247 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 3ds-zip-extractor.3dsx delete mode 100644 3ds-zip-extractor.smdh create mode 100644 docs/ARCHITECTURE.md create mode 100644 include/config.h create mode 100644 include/download.h create mode 100644 include/file_browser.h create mode 100644 include/gdrive.h create mode 100644 include/integrity.h create mode 100644 include/led.h create mode 100644 include/queue.h create mode 100644 source/archive_extractor_detect.c create mode 100644 source/config.c create mode 100644 source/download.c create mode 100644 source/file_browser.c create mode 100644 source/gdrive.c create mode 100644 source/integrity.c create mode 100644 source/led.c create mode 100644 source/queue.c create mode 100644 tests/3ds_stubs.h create mode 100644 tests/Makefile.host create mode 100644 tests/fixtures/config_bom.txt create mode 100644 tests/fixtures/config_empty.txt create mode 100644 tests/fixtures/config_long_url.txt create mode 100644 tests/fixtures/config_malformed.txt create mode 100644 tests/fixtures/config_many_urls.txt create mode 100644 tests/fixtures/config_negative_retries.txt create mode 100644 tests/fixtures/config_valid.txt create mode 100755 tests/make_fixtures.sh create mode 100644 tests/test_archive_detect.c create mode 100644 tests/test_config.c create mode 100644 tests/test_gdrive.c create mode 100644 tests/test_sha256.c create mode 100644 tests/unity.c create mode 100644 tests/unity.h diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..c93d164 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,73 @@ +name: build + +on: + push: + branches: [main, master] + tags: ['v*'] + pull_request: + branches: [main, master] + +jobs: + build-3ds: + name: Build .3dsx (devkitARM) + runs-on: ubuntu-latest + container: + image: devkitpro/devkitarm:latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + shell: bash + run: | + make + ls -la *.3dsx *.smdh + + - name: Upload .3dsx artifact + uses: actions/upload-artifact@v4 + with: + name: 3ds-zip-extractor-3dsx + path: | + *.3dsx + *.smdh + if-no-files-found: error + + host-tests: + name: Host unit tests (ASAN/UBSAN) + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install build deps + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends build-essential + + - name: Run host tests with sanitizers + run: make -C tests -f Makefile.host test-asan + + release: + name: Publish GitHub Release + needs: [build-3ds, host-tests] + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: 3ds-zip-extractor-3dsx + path: dist/ + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + files: | + dist/*.3dsx + dist/*.smdh + generate_release_notes: true diff --git a/.gitignore b/.gitignore index c214363..3e2d194 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,14 @@ # Build directories +build/ build/*.o build/*.d build/*.map build/*.lst *.elf -# *.smdh - REMOVED: We need to commit the SMDH file for the build to work + +# Build artifacts (published as Release assets, not tracked in git) +*.3dsx +*.smdh # Editor files *.swp @@ -30,3 +34,16 @@ lib/ # Nested duplicated directories _codeql_detected_source_root/ + +# Host test artifacts +tests/test_gdrive +tests/test_config +tests/test_archive_detect +tests/test_sha256 +tests/*.gcda +tests/*.gcno +tests/coverage/ +tests/fixtures/tiny.* +tests/fixtures/empty.bin +tests/fixtures/three_bytes.bin +tests/fixtures/not_an_archive.bin diff --git a/3ds-zip-extractor.3dsx b/3ds-zip-extractor.3dsx deleted file mode 100644 index fe8bfdbe6e0513788699c2133c1bfd8d8836bd6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1533508 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

^9^_-Q<A~ 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 z zZ5QP`jDKH|{{a5OMgCs=2R#4RDYqB*O6C#4e-&|lxk=nt73G_WKUw6Tg@0y||8S6V zjh=rhnJ+krcIV9KN9_{7JR%;+ znI+M+Szo1~k#^+34E(W~Ge3#t+y_EW$ydX-s2bdJm!S^#eZaH$67=)XmG)DACz%g9 z_d)Teh^sr0ob+GHgIs(!;dPO<&XG`;bJ`!JpGXvzQwDD+qjPf4u?3qmmA@NHdg3JC zTiuyLd*%W5Noj{yW>xccNB3iMDwlKvxZ89GWh)Kx2{OLBe*3i-&w1m@e&M7(*K$(I)g#JwT3MWyH^3;)6v{yyG zy5us-WKV}ObvD0_{AHB$H}-!0{JNJY{Z@9|uZ_+*JMISRW$71e_d_XEdIEZ?CQIH8BFc{6EdV^5wlk0{Fchz2ah@o-ChrEh@Pl3w`Z`q z=bO9gD)<=nWl5v7(E35q(hGquXW4(av?P6$Pe<26L;aeOWxJ6dpr1QPj~?96X)9$m zQeFw=HGAc~M*O^SUCunpD;|&FKc}^DD`U%VFK->2x+jzNcCT*6^0B(lq3$qsb9VEf zY~6|8ZYBR>{8v2KntvgwbICIb4-poOU70UKUevgj-rc&Hbx<<1g8EDy?=zmKdUcdC zHjoXD)l*G9%%caJV~?6TQk184jPR0`F38J=Xj@(aJiT6=&i7yB#T_A!(yt+`$qO4; zRL9ZN-7$s?Xkhi>WbOLc-(vmpvZwu&k?W=v*6}}tI($4!u6yH3`T;zbCER|KuE=`E zeM4~;|7Cn>J|nyF4qycLj{vv{;;z9R{1<;cA%dhykWP_#bopf0UK&N-^YY%nydU+>gs6O#_a)LuPNiMI~ z z$R6TO{JP6MyggHB!oLH*>Yj_d`od=2!)bS#H>aJ-*V6g1gE_xAGVMIcN1qjDPf0sx zFKBzWoNs~+?@#m5{(5Xkt!eCWu*=DQ2KIPZvo*tC1oOOoY3Fmp(|Oqqo4g|J%t>=* zd>*poY^CdQUX1O^Ek!Q6>Ef-085g${UW{$d9j0B2hVF6RI(Lum1r-KR&H!W)>?jp@ zOC+BJ-bF*PLw0VD^Ues~M@PrJCLcO<+X%^`c3}{(c2}jHDr_pszGrH*b*PNF?sRB& z0&yCPfo*&r$`mFMALk1bKAH5}D0^W~+IcPuf3`A(nJ=^NPg%iirf_d0gPm?{IkGRY z6Pzqy-MP4t{T%h<1leO+TnIL{6c&u>amHe=qk%8R_hx|etXq4Wy@QoE?bKc)eeRyz z^e8+SJ%0uJ0o}2loZe->`ZMXgXuod|HlElA*BniFO#@+p0ZZ~hFATj{xzhXV2EAdC zxpAp=#)@jdZ%-->fl#UT_Gw z8u`_9{zJ8rm+sHMqIryQbHVe(gJa%G<;?{4bD~#r|8G&DH~Q1uj-lATqOXrcX-jl7 z^6OG)+1<^u4yk~&Ns{_!*n+?>*zsmhJZv9_C**;I~WnI|Keyzew z=z~vPVIAU*<-u0^NOyyzyI_t9=)Plijk;%TbZ2Z{uS!x`76Zj*z!|YQrf1uaF zb}hDfqJ)pa1{JUwy3{&qY|hoWX>IUJ(z^AiKc^RVs11y5LvP&sU;GPK_r8lY%zWCa zaRxrh)n7j#ZlM>Zwr}ttfnMn=U%6I3)LA*MgL zf&(U)n1oF*yuW|ldxs8dcHifHcAn|y-di81PMtb+>eQ)IReZ;4z7u>m)OnDg2|nYhCpV`bKZlSuT4; z6Y?uw^>^T#71Z~4tVt_e?;c$W)z@fOoz*G7>aS$H_ARmpLo{ysocFCfCcWj^MT0Zb zu3dj%cNg+RW25@B&M^_@uS_7ZDP@n~vt$?l)bd333g zmAbHGrzTf4pVoeaSfOA~H}LT}XFbNYZewog>$HV*MQe^Rf6fH_MmtYA`9khZYUvJ;puw(w`X22 zePWesIrn(?BH+Jo6?#Z3dwF+dIO&Ix@3YF2)I8>XcX;x}omx{EI`b*dc``oE;)w>* zh<-LU-za&n@bgY|2v0ue=k?Ci^60(@SOwY%8!dBT$vo!j@rfDILsJWS8d^d>(N#38 zOHn84DLdsd=8v{@$3Yt8(-rjZ)&+#C&N{DBJR{qWe9QwneoS=)Pqp(88)aiiSI#HQ z>gPN*c%eS|v69MHId$Nm_ETGG-U<%o6^7s7fn;GUJ`zl2@Lx$@XwpZMsf68s!6?SK z)@V|B@pDOG7w^BIatk_=Y{`~2+pPTvAGMhWZ+5jI)!U4pCF>AZR`KbG_h-?6Q@v(S ztim+6P@Yu^AIf)SwTExzlh3qp{TAsW0|nz>Rh+Qd-FPm# z=Rb$v$uZYZ+`eK@MfQKqd1VJjc8p|PZpH1sno6!Re2M+OEWXsaO$*M@*dv*JupDcz zQ)Q}R{-l>^&4jiy_>O-Oxs^^=P7+M!oN;i}T9VG**E*8cAAQG!6lHG; zvwjtQ?G)+Qua*zX70Sn+v#Hvje73B0CXE}in?@y9vSv-bS$2d=sMiQ<)vkVH+h4ZJ z_-qnBjPh*e9@>Yz51+k9_IPvM`Xv2=_|4F?&JhoL-yh{$bq>}+jBHF%?=*DCm8xuA zsqQiL+~}%Z@c(dsAlVD8^0e0~{9PK~51Tph31eP&9}-;V7s0(?Cro(G-Mi$u^1hzu z@I_eZPQb@hdk}*6F3t;IrshsV~Z{MPUayp0o^K{LhXcwPGky4@h(XVw?j%JQ1Uv;(r7dl^eyGjG@ zTGmWr$H^XnpSbwSc@>%G-QlKtF|0&kk(~(LRirI~dldfa`^k)9-=yRF_(`{U5Z}Ao zm>U(LeZ%R3Iingiy!x7X2S)R;_<9`6*`cIqZaS7UECvs|E%aH`eDm1 z-*Wux?m}QG%|fk9sa&fFJr0q^HPquRE7+7DB_!Nte3Hk|ok#e=!1 ztnf}?+{}D=J?}ldH=H)$-i+;Nc;kS3IPcK6dLMJNtr5{HZRjuim{fXDgE3iqeny}IxPn-5zFO?no>_*CwJ*z)aWDU93-HUA|=M7@8{gJ!1MVBx+@XvwUSA)0gL}7@7@xwjO~j^6Gh*Y9a4OI zMaWvZe;nr<^uNj+=&I`B>?M6EsycWy-dA()fWr1zUGBBuxV|RM)fHcB?sGYOv%I&1dHY?4v zDvQJnKZRp7dD1(?D7_t}Wm>Wyh$ zTH$*f@T}y|DRV}3H1D!2PAxFr6k01sQLg}BtpzB}im101pmvk)FpRd4EL_W8Hu2YW z^0n`$Ud}2*19Nu+^#2uQ%dcGFf|KRFL>&jltZ*kM1Q$K zY$&>|11I+3m(XSMitgeM$(cXWFZ8XoFMaDh>~LQo>t%twa`;x=Ubd6_)FO z2lZYIE{4|#*WR5^!+UM#c(`XMXWN24e60K2Pll|)P4Gbu`NjD`$OTVUZ=%i{IFmm) zfj!Oq*7Gj==p=qgXz&#Bw5_w-Eh4u%+?DQB-uLi6k^YrBZlyc(Il^vY4!RQE>q-1S z9$x9DNwc3cu^s5`1Kn;S((N`ib-OL?-L7+Ex7)s=+wEA3&&>L6cUEV&`yOfE1NI!= z+bDCO+U>4AjdZ*>yu~^??`hsQ6TXi3^`wsw-p_j{;Tzhy+lKc^yzdrL zZ!J-MzQn#LXW~jXS+f^Wdu_Dt@#i340hvHvJL}o|&~K50g>r?we;zTLvF2x$<5=^M zeBblsJ~xx@b>~tpGGUOuY|_q6-0$u^k@c0D?<)Jnq{|7G)3VaY$}>;$>Zv(KfOF&! zoFAuL#W|b3ItkxoF*t8?*)H{^0LSl>Rx(ujvv~F}WZ=!mzYZ;?SDTQpMqV^DR)-TV zS!i(SSn19MSM8l)j5l>>oZ$>X=Fr&l<@+dqwgUH)1~{$*R#4^|%4|_yX!fmIxX*j~ z>SuthzB>y)-u5%$ar%&S?r~>&V=QzVlKbb>X>A(2|C#WY;*lBS&V0`8tjRa&1M;=| z`8vsG;>kCOd_f)G-|ykFL3dI~U+8D84SZ&fglCaW`$n=B!Fvwe_VaF8&o`fdOmGs7 zmCNhV75sM0BzoPo|@XMy8GBCl1cVf)FvxFgI^4Em;V;@D5o5JWw^&W#90s- zo@&qQcq;8>ANJ^r5w=z56>AL^{b03pANiqb-xT$&4kzs%e}4WKe4o!d%;P;P>*-EY z!9}{0bRxB-+9gCDi@FPzWbx8CdGhH>Kl^)>ZXvvuJK}Y-2f^m7w*>og9O=I3uV$=I z6sotKx2U>Ax=$`$!QjG~sh&Qj_<86H1s{*G#07encyGs|gL;?7B@@TkDLrc*{MN;p zWx7-KmfZ(-&%-wuJPkj8k$q!PYs!$FSbG_mub6&0|2c0yB)X|h>*3AdUA*#Vbb?ws zMQiNM?0sK4^EAroe{H9HQ#`#X&`+-L$5BuB5dOiKA>T^wmWkKuK4$EPM>W>(rw-~% zijO%`#(;8ncv6bP|70fw#8d z-=F5md*$B69*_JJFqa)qe+RC3C<>m^jmNQv=JWoZ3mD4(0YJmP>UZvp7#v0f3vNAG^0Ae^M$W>R~nGh!I(b)?kRW*n)~(csT||i z`vJyO$+!g#;8-&jO9y#~I_1cRJOFH-J7u>;a_j4ZBa|P!A4T3;o{Hp=Z|E5vy~uR@HPl{Vt6bkLYy&x8Cr3w>-fDQ!f4>qP_5#L}D=F6oXVp7x^||jNrv+y^ z_=~Sp-an9T6}F*Ozzg_jK6$iGmVCU?DqhfR?O}aqKfmn4khP0n_C?#8NSyo`I@UH? z1>R%)rkvDlt$44|+CWI2kJe&B<{{#CTpCF#!fdiH`m3&+I$=0j& zn;n8hx~=4SiD#DYz^@|D_bvQVDa&djyn)|b;Iuyp9@)`mj#BdVxhd2!(Cw!3o_}2R zy-Mq}%!%%!oqpz?Mcd8dTe3Wj{;9p}*~IAR*2HMeIVsrNlB1iqS)<)Q7oi(6F9MuT z{t_E%!P^fTheyO`8%0;zOKlLQZH9Dp<}8!wZwgl#vO8>~zX$OOlW&~DBK_b5em|o< z@^!*BUA-CHBtzu0ES;Nm5bmAKyHm2@ij0*_Q+kiiL6J>ZJgo8OR;>w<{|n@ooQz?^ zpE_YQ<@&Z6>hcP4w<5RaF+KD#t$55WO(+3iKY zV}1us!3n#i*B`TH-dvrR=&j7l_PT30S61~1>r5r`DbJ(usOlPK4a2sUgp9vLatm~u zQGJ0llkQS|?=|xoE1RyYBrNa|dze0?vMrShouVd=JzUU{^Lf!ZJUGlTTdhKg@%LWC zTSm5mr`k_AdksrD@^m1d2S##FlY`vO-03QAIC!3cZ2J-W z9p*$vyH8yWj6%9HuYGiL5A_UacLKDNEkgDO%>_B9+17osqMc=VzN5AM&VhH@{JG&x z)J@|Fx{a9|e$pRHh5^%CADL18414yMb&hu14w)P3Y`!TZ5gO%)6Fx(7gLut{|BZO{H>s^q*F#n*M2siyQcT;!S2=>4OU3H_~6Meq9i8L!H7e5rk8xc(N_&Y$Q;r<%?l^~i z_tZ-^EcKP3uRX&ZJEm{JA8NC}mNixPv1Z|se4+e1;HW-!KYJ7WdP^^P^ykPycr`0L zoy|K{m*F|D-9Jwr`J)z37;WtK^Q_*=$=^5QT~)f4>?z{AJAJ$AJjy!@I=%WG_M~9f z)wwsrtfi&hKlk`Q=>O91v_>oXY0QlEjCOxSSysMK9Y)v-ylZ?_y(hMeb|0qRPik)z zJfnW5wG;KTF|=t9phk?K9|fQR)7^jh6eDmg+81*${=(W^h^vPVxmc>3pA*9i-bb5jrwQ z(0HDO9;;QCq?d0O`EDTJtJFns8o1}a;X|X{^9g$$nGplNWRco%w&q&&t_8nIFosgWCnMPwa!c2@5+8wN^n02Hj_I<|97h%W&U2i104 zmyC9=@Z)w67x&}#5I)U>AEfIl=w+Sg$tCTN83sOrnP?sDewcjc5=OlZJtFA(%|1<5 z{|_{|(Wl9K==K3{PfMQ zBU9FZ=aJx}z9&8i`kwmBoA}DohsvRTPY(=ayXY-mN0!9n`9gUlWoggZU%5-t@ok73 zz(H-bhdQgR9KWrWQ8T{(qnEamHrA-oPY&H_5`HMTJ7yk$o@OSm6xP zsK!x^vj#3OKSbWO5EelI|cmFCFh?z+Eu;~HoY5c?)>pJpJPk4J*uk+_;Ok<7CJ7CMl;7)gHkv&?@u_ftxtVhJB zSb29c;UVTYxU9Br8uJEnc$CqNiX*q;%lU?Dlb$`gX8j_>9BzPg8(D+cIMR!&BW|s5 z0=LiTnYj;K?{g0y`-W*-?VS*u6zSyO8HHAL)c1ACGk8+Ix;^c$o3xTK4UKPzE@gaQ zTBUF4oC?u-O0u_^eH^X9`GfDV*Oo9BJ&|=e?=1XhkZ0%&W$DGD>1cHSZG_#5eOf-M z$>jY}Xcc`8{@phA`LfdN7(LqkCindk=ZcQ_CL3P;25o0-(OLC1&uxq5M-Hb<^4LB%Xok4so!@i!J z>cZKp==_15T{I8s^(^(0&rncb^+(w(KJW9P)80vo^j(FgTe(NZuNgNFFtltaBH zwX!b(dIw|MYU(u~Szr~!-?OXT!p$$&==9hjG)ECU%~8es>JQSN&!p`Gy}y$-72Qf7 z>T^$1ds1iVUE=ji$v@S{>1_JqVLoq8Bs}0JodI-cxfiH?C|9(bMA-q&@Ov7f*-g;w z`;^s{*y?sU9`BwFUOC2*oO8F~<&W^aAaOT-F8D?IXXu^^j2^;z2z$s6;|zq>WrRt; ze83MIOS%()AC#@W0G}G)uX_nso%go%xqm#%+WiJ&M?eq!#0)*Q5%*i-@_yQv_}@o&Mz@q+nWHWGfjgpct2=@=P(R=6#|P`)toz0f3%|i0 z^0Z{m>TySFOqf>X+=SIf6J`^pdy6?EZS@q^${UbLOVqx++q|Pcv`TgjW1T=}1h)fE z_f*TzO80ed)_z0aAcw&V8A6y@ch_1w_`C!@fgF61dPvsE{``5$kk7Q4BR4W180)od zk@RWWO!LymeAxd%zWva1|FK@0@72&i{K)B=?B($K$VYg$j`d{aw@H`s!;gnfj{sM+ z{U-3%!AokZwY)z<;Xnj1y+Qr*Xez`Svf~cko`yE-`w5((d5Blw9IUm)XG+ zUjV|o%otl7qy3!+eVe3LX|HEn4eUp1VE6F;h!0!kuH(C>=6f06>-_I!JT)KFyijM1 zKayC&Q(;S(pD}misd-xuKQm|JX=Mw@*;TA#9IQ`<_bI?K_P5hmH{-npxih7-q>?G( zd(%()WLG7V^Y*mue{cnBykEzkY}GE->fEXPY;H(vOmN)aVv4s`<8L$m-;i~ zNAp(*3+RP!aI40Y>!qVYSLp=U77T5tvL{r!o(2C)-_)JrS=Lzdtg%YZ{(EbwZL)Rb zy|q-$xn$22z0beKGV`U{wbWOjuhvqJ5l_=^xxc+tX&caK<}~)XSJOVx{zCO#>ZLK} zbM$M)PbO{=ai0e7jtoA(xqDpcORpeXuE*yMyUO3}p>!p4GSn}twLNbxrt=sr;7kTi z8)fL8@1X2Gqx#%)39lpkRl+-=`E+Rhkj|@tj-Al(4rs3Q1EkH67XRtNKt}Bb&v(Er zkSRIZF_1O4sjj}P*#Vq7=&O6jOYn;9Y;XI#g5H2%&E3chWP=}u939I055W8_Wd?2e zdw5Iu$WNdXoX!R(@kN09jXv(*qDSn%LfmD<hC!v56{I}4bn08@N&8t)GDReh(9>~k&ZIxHb# zZRWX|wYfDsJ6NmRMqG?{t>^9M*+rU`r_dz$ZR0&jSU=A>JUe;LBySJDNB9N%x)!9N zIrAbb*h9iILR)$3Fj^}=_})%Nom!G7W|;oYI^MbPnzvXv%2+g0M6Bj$!%cOC~l(R*6$T&@yxw(g7- zyGo}5lYJMglWliTCmubEz3SVk>x}BvoW=Q3zSSmIThkkvi%MQLGB*j+R|jLj4AKSR zN~X5 zJ(a|VE&owt>)_m9@2)UpQj@h+fjK68?s)dGBY~&;GLL@-{{_;%g+9t1 zndMXH3yRYj81Fyrt-}cq!L8e>`?1hnbI44~I_qlETBNnGl?S+m@PB#%eiOdhD`Y#l zihoyRIhN`w{o8BYO-j4inF04Vq?-?qiSN{A+V|Lz`<0|4xrnEk04 zzb%IYM{+lkF4&=TZq#`RZ;tuyV0ia<-Ze(454^*-_7t2inlp!+%v1NK4NDisXpcb? z-*uU;Qk4DOs*~;(b)YW>wD@^EKg4s4b3x@A+F`UcW6_a1pUEkh^)_f*{s?md;laHU zt#+!5eTp-6cP2bhsA`|4+Dq&Cf`i^+?4{a|`(Z!dyR-{%s=tR8(6zdgXBY8ZPM_P) zc~K**aAkes`}$^S+83Af3>8R5sVer?M6 zIq~WX%MJb5kCg5z{Q!Iw_H~8jyGop=IoLzHEaNvN$BOWI%~qaw?Q5Vd*xSKelD3*z z`jwj!ty3PYLmBj9+O46~%N^;Q>%xz_uH7HjMGTG7x%*w&ne2QHUPlKgTwD_E?EXv4 zepk)mr!%irnC1&p9nRLmkC$^sFn7?;sF&ri29of~BUsM(1}Ze?9pl zPe|uGl05gh4-hALr1h5s@-&iU%}O$!Hja{Z8)rpIMg{gl#p%A%z%HRQ>q#To6{JyI z18L%!kCo~iZ$2Q~{l7Ez$bR)*%GCGE`qtVt^pStir-7w)?vMGrDLaAEy`Xg9zJz#W zlkxF+hA^Ftqcd?Fe(n4WEcjcneofkzOfUYH7gRW>UH*GZMJKIwbCzl4pE>Whsi1l; zCf_eiedm$q6w>M*9hLj9lyRKek+vNpoWOw-1>)hP*QeyifG((ZsEFoKpQoC$g~pS8 z+|$62Pg_euehv6=t1iIHp(E;?mVjp3>lf7bcBRQkmK4f8CcQZ;6uNlkD9gMj?=$6k zKbAcc@F`-wSZxxFv)HoA+ws9V?kTVTwGe+LY3qT%9{4Sp``rV`%j@yAYs>5X%IcSR zchcx3vCFFXCY`8u{0aKTO~v27b=*w)Ly|eOT|I|);oe97TAZc7MG79ys+VwPelpmQ^yJ1!=(C7#<=v|Iw1>;c}9UD+w2~{oG$~r z#qs*s^*&9Gt)WR9IJe>hckDRsEB0|-OJ4bL6_DY@-!@t+c*;HkevRgA0B2*fi|65#A$#`W+3u3<{LCFs+0Z)7 zngGEwq%Sd^;yX+(ZR@ixIxoIC)}Ziaj9U%fW}o|B&M4?8 zzRq;-z~DP9sQKrSmAe?f+Ly5RlCndJ+KEVeB-;4msga>fn#X+5rz&6|K$j8pCxtpFff&_gMRr9owJcoS3XQV`X|x{ zX-D~QU!Zy=m!QkNzB8QcE}8o0RR2Yx9l#Cu(+19KJ8aG_RGjS45p)Wz5opY0J-^b$ zK0V28&Oks$9ie;H;!5)>&yGT`bf-awItrIZc6l-$c@$?YgmI>~vXy&IRQEXh5;b;o z`EoJPT_V7Yf`{~{ec$YJ_kAST|Lgm%Q8xJ*AFcRs@^3$~&%If+!MFHKaI&Gz;rT+i zN|^)1sm!-2Q#hx{Qx6{7X``cf{(|Q?e-F}A)Ul2=gLZhXi!zthBkyb0^rE@$N;H2_ zMP=g$9FHQm$HO!5LTjD>jv!~8>#clK<>8~N_}2*2zL)bEH$TMpv9zmA+%3E#?;Ei{ zw1%8*?i}b1%^Pjn5}u^vc=IpuC43xj1mEv~@2~>4C!SXRN@RJVF_wgPLcP0WTc}HV zYx$z@x1q0i0A6Tq{qC2_k3Lu^KfJcJBs*y=cSk9jpHdo@zo;}e;f??2sI3^2?ob{2 zFDwnuU(7nxm0JHKgGvccqp&>Ux4$U*drhs;3s5o{;JaU zd*ysto3?G69g}%O2e}kmvk1~Fla4Z=revf;)k1op>as^Li}@$ zA1C}9$zRXLX4S#Yr`(^C_F>Yh|J3%Wk0akhHGS%0(uL_$qK$axYdq`eqxJM*^-0aS zYV+SmpNtVN{fmCtcn@?M=BR&9$L?wRB*qE)CEt1m;|1qFwo0C;A3=*j@zf~^kGI$O zbfA9m$>^r$Y=c0aWYZPwFY)>`Jdt_9?RW?o{b_#7xqG_5rzF`Sy;-`k@D=~s$)1Ys z%y7dw$>`^HSk7ziZ`o6xU)ajDLz$XW+=<7~Fqohdp( zBh^uIGlb0loga1zVUla2so?*~@PYR}obaLe#5P3UG-E?mI{L)HIPz*<%RJWXFNiQc zNyq*qXMl^3!?~W2>ZksvzIoMGJ>DBen9?d-{b7cmp0#5$?%K(l3{E!bG$u11pEVvH z?N2_ZGjZUJ{~9kIwvx}eKOkPX(~zwpa32ru!UMfCZt;Bz-@ru&m|jHyo4HGrZyP_q zQ^48Kgm=^LO}v->Jko0(s5V;xp5jlv-zl7ZI(%JiV(@suoB<&nS~74F`s4)dSp+_^ zHlD~c-+)g)53Z6WvpCy8^k^ZSYz@czX&damW^4iRZOOmw_sD*CF}Bpn^h?24IXlqR zTKs%(fd_Z9N#8Sbx0i?;>BkLNea%|e58|F8F7C(m6UUf36t|YRuphUEIL6eWxIA(D zf92JwhdAWTP~0uV{eidz$v)OJz+Jq+-iHvrL_em^)~K7U?d${i?C0ly#_S6x~(l_^@XU2Fh^4!NS!TSKu7M?Hhba-y%*}-!=&m>RnUD&~U z19;d8bTUgkvK*N+zO20u33FC*y23fLv0t2YQ}+}F=~VVp6X;ty{|^|_YZWJ0 zW5LWC6JClhBYmx2VKM)aKfUf#3DV3vBu#`gmy#w{lViv9TR2Yd`g>#V0`;?(E=P*@I~gQXQqse~h#mOaJ31=xzNPzjN5Ou&w$1PJFe|;6K~g9%Gr0RgU=5 zm&$X{+om8_9{yCJyt@fKN`CfZe@DiC;a_h_*u0k&rlydXp2&s(>Sw3@MU|P z6X@^27{#|}gsxw1>Q|kvs%kGUenm!C&kI+|k=|}6ZmWdA`%^Xet_0ssUoU|W{9lEP zgoo%`wsR?GRdC;TF~yu`zk3q$)k?e+g_0Trkl9zr-oE3yqbdm?y06wX@q`TaI7hLERuc1>oOPcBpd zgz#_s;SDw6F~Yy;haXlG-at6|{$R)5%)J(Se9E0^)db;oeptoM#VYp_-xCAD5AY1?}HXI5vjCF!hz5 zZPAAKgH=)vJO)1hR&!Bs$ze(r# zG5bl)S+xCy@-o#Qo)I6`_CM(f^xUeIDKt*S251j&tWuw_k*(NZWiy>;^3In2-D<~M zss-iY`JnhTC)@tYw^197CG0NPPfiDJ&x71^RTA$C?lsj} z(*=XOUrPmB_fk#deaiH{X4X?E`+m10jXfB>qJi&mrCxk@X!im(cVq=;LAjBB;1o$q z`QzdH{TiFn;=hA?QYWe1)Q|hA_idan!M6?lqyq*rPdb;{;2#YA)8^a;<^Ve(ZugCUv)Fabd!L~W5w%>{_#5~2wG59sUEur&U;o~BGq~GHK z;ku4@t?LfYf+Ov*fUs3b^`R@O;bOsNUKn3PJn!XIq*WTPjI`{WarJ>E|K#C)HRU}E zZMyyMD~Xq`DY-ZaJKT-Uo?IkP>r1@*7rt&_MpLDuai<_*Lre-V6chl3X`ToAqTEP3NOPZ{?Jk2@x@2B_``Gr%S z9nh>#V&~7LbEObx@3EFriGpuJyuq5EnNO+zC+Q1C zq2AZ=uKT$n8P>Z}jL|=UFIRhK#>wBwA`q5T@5zwMa& z56WuepPcITs|#sg+xequzq{!>S{G@{AYVzNJXO*e+dl0n-9f&sP99$`+Fr6+W6*{0 zwpB=1I{8i_=NP}rQ?Lcc^Giy0?n?I-U@*5c_7n$ymGAmxe-HcK@r)Hw@(DNPYa`z` z{rK<7rkn8cJ)|(^D31~*-2Rd8rZnf4VE;5S*`GTI#*-$0w|gP|UFTL7sn>`^sA4C6 zzVp~)f4=in){FZSzch5{Z+y8t!FieUguQbDd;GG$FF8m*=>!II_v+W^+bS=2NO@W} zwNl;SFoV4R-oM6hGT`dDc^%A~QvF~2z!^X}S-$@#qv=QQhei+Vk-fS9se@$OJ znLNXi^vOK^3R(p1@<|_-nXdxlEBe-YMM~|2e+GE@qNQr1?;uxg#z$i_eC$8bKN9K6#j@1`Pj(Z> z>8-pW`y_cUAlxb3@6H5voVd!5;FYxG1^1BUfs@aT8js$2Ik?F#Cw_WPXE75m-HJWV z2;Z&E=aD8u8u>9O&4&*hOk;c-NT+b6eM0&3%#HF(Mx8>wvEp%Go`q8K%j2#(+6(yM zdU)?BWKanD$iBok_PFRaMhZnY@wF*qI8aG&{x{9^*+x1261RA{@um9>VG2T2Xa{RN|j3) zw1v(U^XxdXTSW;A`p+)>HGk&k#~9Qq{<`|dl%GV`bUZ&7l_CAWP99hJ4F3Q6ep`9c zoQr;=*G|D5Z<-UJ55;5T)ta05?|QYl&SOn^-?ATkfw2_3XXONNbY!DMr+Cfa%H5KT z3AJlzEySxXe-hrDlQ{`{u$`D(p&o-LqT{iay;^>pqH&Zv+$K`KU3!;wwEx3=YHCSq zX=joyoa`!TJq>>m*3qu1UQ0ad)U2ajqqViAN727zTT;9xdVg%XaeGPO74LwC*qeN9rfvRqhFg2WA+*ffm0^^>x9PPN_Oa4#8!k!hzqx z+9*CEw8`R%)@ZO1n=u`kH|V6mQ*&te@5l7}Jo^2R%|$%KyyiJ*(@r}2!eA3m*<#i2 zQ=HSI^+LuUV?Q0sI?WGATbF{rNE0Eg(wXmM8_0}}`t^s$&JxiSIm=WR�Pz8NcOW1e!qNo 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

pF``Kbap4bvwT{kk5hbGwTc`+nPHq zJZ7?wlQ|~`8;S43T#P~H_G;dC2YwOznCo435$)JugLTr{o4~Bom+gFP*%W6f1@?wIrd^h3P!}nppaCn=|V=JZkCI&B#Dad;Bal_CYku`dgvFVdx9(4)7AW3N)`V zF0An%_FZM2yY{}N>~&qxR&t*MuY|vCXNT%!@?TJg&*>h@w0lRG{S%_}JuT^5?VI+d z6#tH+tSmf#7iE-bo3VwQ70x`+g4&QtW^dF?X(O@2h4r^<9|+F2nNL3L?{Eg|a5|7l zomn8c#KwcV*{{^}d68cuf1-u*#Y&3TE^3;2yyQvhJA9UoiFcp;jM~0pQ}yY!G?cB= z_ZiMm<6{>SpMmzXO5xt7qO)nwqr0_XvR&YU9^eDyv`4cysV6u1miFI_8F-varLh8H z3$rTQf_GD=81)xUPHt_`S=|DE&aDF|?T+lQG+|9N^-%rCF&=OYcPF<4JGij9foJV8 z7cZOjX6dDzFBoG?u#I%Y-Pg5`Jin{m?vbp$#ff7uF1IC69TUFxA6pwtsIhN$_8I6Q z-0g@QJE7OUnD)qbM)z_z`LO9-#F6%~#-%ei)Npe6 zpztxG^^E*bqlfn=0$Vhf9;*EPc`aTVdzo6g4%ype@kAN}vJZ9V9Uc<%FGxq@_PR-+BydnEsn@=hA-5USM;()A=)e?dv!h`BGg_IDU)Ge(Um6Ri}SfoxBB& zA3+;~Co;p_2}2XngSpk|@t#+I6nsP%;;6@VI_ny$%Q#?gmW}@ z-z(8a%+77-tgnQ#po6&j7AK2s;|w14Z?Iik%>Gyf;w-??nJXtjTj^#G_C;ybCUiQi zb7p-(XL%^5wnTCk%m2UJy?>Nc#kKc+PIu2t&rFLA49Pel+5@AGh8r8f1eJsqQBg^3 zg(xa9jS@vA+A4`?h-u~rAOX@SDlsUnk{dK!ov69jYfNkvl^9IWsMi=Zr_ay~4n#@f zO-SMm&*xjG4z%3lUC(;|de_@)_1dSZcJ11=t7=!(u3xuSH13m(;%dY6yNQDI?M#ga zn%e#Fe~SQn#AE%RyE;n-X6s1epQ6;y3XCKfPBWy6Qg!pP+usEjBn|U;G4p@-Fqs_$}o> zmA`YF?W4(;`ar#}p#CqKrQgZjRUOBgp>$-k$`rY(&7jZebAxwNV#r*!P3?tpD6h*b zz6*}tQ!xD>cmD`SxU5^S_TBBxuxI1`+thvT3?qKT)cwWPeeuW#w#7loTw`F3u?}ulb+7mQuj_6qVrvZX{?fhcB0(l zrAeo=z&wR|to8CS_-lP`H}!Gb2dZoP$D~Q}CYkTb2Wx~Hs|}WdvEL5HY%cZXk=|f^ zhJLQ;)esMU-9#{!5RF0nRaQxJPb_bT*!-w2NQPlLM}+Z7XRA%8$ENe0nskPRcn74@ z_J5JiWN_lt&$F2uM4ggrc&XumiwAeAJ}9pbSsv;?9^`dF4G+H#@!;W{dS~!d{ww0V z-GpwArb?C58=S%M_;vCR^S3#S18v^QHU0&gzu7gke;ndLJ5Ky4|3UsC?UQS0e&?$F z{B~QK8c(Zirq$5Qhj`F*%YluCK8`&+*blFw@3MZRVf-$`FXVem=l(RVuxT7}XpqLZ znlxTH!s7jdG`1e`zti|ReqkD|SL{#YY@5a@hXrZ0)uhoJ;*rJ!S2}}3u5bq5nCA?x z<9{aqUHFAG7tGyHbE2gwxwItLRqJYKUJ>F!b1Ij~Ts_wry!CQta3=o*|6kz_Y3457 zPxDAibF$@gchCN|Fg?VBrs6hahOy7qX}cF2ac!8|TUZCLzBEW@w3Y3fHT3?H+b`SW zFLnmo`I~!}(Cbc?H#DX5`Idgu7~IS|vMb)vykzv3u|w3ehb|=#^W8miu!HgVEbunaNepW(0?W`=^TA?ccsi8H={QW zaJx>1ais2}D?Q>k-hBoq*^b|A#tsGgF|SgpjjOZ>f95dGojL91ys_dF&(*nFs6JFFC;^|!!`sRvLUS#-HIbHx?Y2u!g%=kBYIe+x{Qe}23 z&~lL^9_O@x00y-dh>9X?dl+g?nc3AJwu5yNp*k zCYAG#$>Q!PRSxG)N;m0MA}Ozu$z+UOIEEeWChxuNr{a!@C-Swh%=r|r;17XM$@H3} z-U}#jAC2n`Wk2S%DPvb=PR026T9$27e!+H*a!FA7C5% zV|7TW$&0`X_mneFTKhV({TXbT1!L2ctzY8--Wo`+sNPPv@{qvp{w#XTNy&zxH~n}&^(frzMPU9$ zn_1yMO}Olpvot17wVxRPOg2hKxBQ zsl6`OP{xdXn&iJcrL!k1e3i58e{Om=w$UM!J++kbchgUA(;en&Q}xW9M`;|$c`JQ$ zH|f#)_MX|ius6)CLrG;Sbro8+jz}s-9;3*^grA=sfTj zt>1d<_c4`AsZ=R3rg13~#jQ^+^(F|9{J+L{SmA33Z|y@~Kx3!QAa~B$J2~n?p0gx7 zf^i^qwbjv`3M%`;Wqv%nq$2zDvy-fydh+UbR6lj!qwY(4_Dd=U=ReB^7+x__$1FL>XPyd^K?4yHwn zF-Cb$9YY#G^9E0f`tEUWB6)r)%rkbXr+!JDfp6xb*bg~>PrDdWflu1J^qa|Z8l9Hv zV;qT{1bPYaZs;zm%5Ec?s!M_na|LV+W*!Bvj7x(#L#!OWXFjWPw8rGPb$`N^GHWba z&&ekIXQbo3I`l>tZIkxQn^hXOv$ok3&v4g1HjU^>+*#`Cp5?n$J3V2t+*xb zjVzA#qO7Mhp|=~+A946G-|(hyw=l-P=anOya!ES+uM2 z7S>D7t0bTm%l3M*$;ElM@IJz0_$iHOaw=z;Pof;I^3}E@8TzoZVxF7n@M5LO-UIKg zti13L>n|T`@=u!8?mzP-2L5&fPLz__D7wnHSs{rH^qvc=cAYrnA^r-yt2X zzG4V{fRlX2)ZbWslou&X^_ubx^r_6x^G706*3giFlfKNq5B{GytA{?~oc>LGA4MIA zr(YXT{}fL@H=wqs`(U&erVcr3{a*KRQm6LGkNF$(eJj5_JYi>W%aY#*RrSNni7HwP zEfD9v;fpFxX0{*8EUL`6ehtiZ?wj80seZC_=$!ta@&4xR=-mjkRfpO>seXum2EBLC3jaTsM0UuZ2an0VQorN^p0E9rPGNC1#y`$K!T*pU=1q0>F-ou8w#~s_ zg3YVqqDNw>ZmwM7{uAne*22|)y5wEyHx^GXCX1(cwOt(O{ZC1EfR}W7eeRfP>mK`7 zwb|?OlH5Nb{xjHZyOGPm&h6Z5I^><-sI1{jdD5PI(Tru7hueG|4!u|wdr_fB`^5Zc zP1^r6JIK5CRwOwCHnXh#<}-Pl;R)6a>SzOX?D4EaSJjzy8_^yPU6ofGWAuUJgYiO| zylmsU!6{Wzd~?v=?B&(FfN%4y_1K@;_c|S9Cw|4F=%=*XdUj9&KC?Z3GS3}2 zWn`CHSk;+PjSB<&{1$9!$c^@-{!V+iVyU3a)OH`Ta-&aaOLDd&Ex95$>btrBPj9=Y zX}7WTs%^TXLihbT=x5!Rta_lb(p!t7^&0tC{i{Qdh(G0jmCe`qt&GFCy9wKcuQJj5 z-7)ri##6jEN1rBJx4HKy&s!O9ea^2x=sebiczccVuK&zs(41bGfE}d%Ghb%jak8g( zZ6Z1DzSo*b2AqFE*A#;HBh?mPU(6YR6mEE%Fm`oyqPyCxQ)xWXNnT~cZOyN)YAjm^ zUWn7cTe4cu5}tHi9ePW4Mf$Dbl2J%g`TMKvP}v~AvMb2%3*=X_sDCT4ODcVp?{e9q zz;zkd@@96O^4s97K<@@^=g+2WO%A^k7#KR}y?VrVy>_ywnF@{0rDe7FRrmm%EbJ2XM z(nZ>FXq^OIt>YybtEfMmFuSKZ@$8-|Hd^*_!Y6%4E4*R%eO&Y;2gOr;nWlPzd>N~^ zNzX}tiN6VqOTU4fQmQLjON9n&RSz7a{x;ox%YE6>Ds1O>N}r-nf-z+CIsF-U%@yvd za*k@5o0!=@9jLr0UF9ciGfCR0@^ChJ5Z@!=U*}~bj`M=vBUe6-qdvq_0Z$J35MMJ@ zcFZk40l%s@2SFoM>=~9U^bBLo&fvT0YfT@bK23C-G&&o6-D9nGr*)nfbfqiR&R=3~ zEt;4p(4}AKuPc?tCQGH!(hHJD6Sy}}Cz`Tf@S3pGYduK3B$F%rzo_0RZhCbca*3!u zsjVr0KbjEe7wMXZ`Ii34NS@l~LOsUbyf1&kKi$$&S%mZ}*6$f`l~=8~f4UUZ#p8gi z@$a(*$PS=Ae&0n#;rzZ}>&>5gu^FfxF%K`m-^vNjpxUX!_wJf7wVfq|jl`DYrZcSP z6?`}K$LhVQmj;k!#YqL@7LDs-SC24n9_zk*bW-)$W1ieTj()Uo$-3(3VWT`ZSMSxQ zMtSwej`s4?d6O!MpINsb?bYF*duCnrzFEu*PhM9YHBx6y>-@UeYX=Tay6oeO_;qKm z9&m@Q9&o%;fA7#mmC+ZW+siyp7i#UU_cHrJi zd6VgA!tgsd74hq5uO5iBuO1kEDt^4VGx`MT*h%C?cf^ccJFsZ@l1lyb-b#$|RX4nK zjpCd8+YTP}bpOG_p5mSw=GV+C*fTKPdXaA0 zgy{6d4PMuL>?^aun^Paq_*#SCRX~pl9~?txF0!KTx`c^N z1ugCCh%B(Um(}~D;M1fzGr+y)YovJz^awM!H#Yd~l+!-G=O%pjf;xZH)8N3b;bn6o z!2MR-Zzr95a?Df3i{c_H<=?%s-sk?eijfm_B{DDJ-*YWApe4Ul9^5a(A2`j7PsLM` z^1o*h^uQNA;l)dF-@UNTU-S%i3*=XqMHXA2bux8AG`@mP0WVSRt)!?c5om~347-K@RUP3=ee3c5*cUv`#* z`6c=F&`vk;=P@})bL0ql*E~6bZX06yLTD!!`vv-_CfqUnr61LIs!u5JzTg7popI*2 zvdQ)EUB{d|#`hjiZ#vvs<&~N02N~|p@@}p6WV)+Pg}a`f0%lk3h%?`dRTfp9rxuxg zHq05#7*zAzef(q@`&ypfLFWbh^!nTRPQsg;=<)mcmR>Zrqm<>%o8m8cs)jdxGv+e9 z!I$>qEGTzXKj2&GF66tQykK|SWApL>kUrkL)ucZAXVSS2I$ZrYZoMs#$rStrv{&U% z`K@<~I~=dTH~U!7k?b+7)H~ffMAxiw+4!>2&Ss9{!ms*Ww#Mw#*hG5vUp}qAx70tI zF>GLqMeeou;6;hU8LfSBQU}EO5I(pM)ZmUd02iI|59zbixsQJQfH<0GY2S#>9~nK5 zjYxW4ZyRQw*7_&s#3SvVLwiVIKS+!k<&E0h?&-~HVz;bBJ|+U^ZO z_qT5wV&hiq&2-aU*yg1N2iB>pc|5AUkJJ887%{gCmM*X6%? z&$?=n@_l{Py6WqT_+P_+HvhBvpTxbK@Tv8`Wb#nf7!Re-Y4-_iT@qD%b?^`_6!IbJwWc?es^EyJlb#eUUr#j)8=e@?8F-S_n6Ow-3b1 zI$wleYv4C(4DD*@Z3C0&57ZYpq%B*xOFFIaBfcb)c5KcDhcqXpTyVcT5ZHi5Gw0R) zFNd0X+irOgAL3`8@TWJ54&u=cw_}HT}))1I9feaEq_#*!_HATk(|M zkEruKj9dGYV>~y7%^E)Yk^3&{$>!^$sj(AL)?>gK6&Y=CRJUDtR+#qwhvNe$wTSTodm3x>)Hr?*@QdX~II(N^ zU(0_!|F7}Cj{jHrUq8ZW;I4yH86TOub+ty5CvQb`FLkt?@t?-2vU};S2-!s3g6{O} zM#uJg2azw`eXKLc4JqDmbAr45G(Ka01?!jSLHyn1A1K#9Qny)yK(0>mY4f(Y;>VfK zvM06@(SDahb8*8QrUUap8kGW0UsIc7}Xp;Uj}>$AgZ;{^Rng%t5dz zr~YpAsmes}oM|pspF&3@>G$C6Jo`zD+JWZcQSf|JO&h;$p#2Hzfc(O?HT3QQ*Ex!I)$DI(4C(4VckMV)D{R*=nwC^pJbUfWG(Zp4$TV zhjh=~R`=-sc-4#1-o?X86}4IEh*d+wtU-~!c98yh`4ylS)mEok4<2OleCD(7d z2f1;VUX$duo_v&=@VkA$xHklD@!NFIetw%vtdH=oOE_b{V1;`bqIC*uB!C5u|qS~m{f}RqtMmL zPeALo0fnioMp>Su=NuQg8T}iSqsmZnyX4`L-hXI|Cy`z0uIeF&E;4n_VIQHwl9XYB zG8f+tvNGkQ@^+f3OF`ZHa9z56ptc?b{RJ{KeZ$&;Mr0x0KC!QVp^W9Wyo%3HP!}b$ z?9g@9NqxaFy7UiaxJoh{?X{%aj0`Vk?$xL~afjZd zV$>fEKWa;%3{4o}qv30F5k4rV(G#s4O~)XF=%=3ZHC|?qK>D`2v5Cwu))O4|Sk(pVSi%1A!Y_k8U2Z1mkFXn6&|Us# zE5Uptl9GLAh5wlhySPkz>oEv zH=NA6Dr?7sN>^ie%`Nhb(~pGS9OgNP17`w91E&Goff?Xo!12J31GNwPW5AKXLx4%( zM}aZm2m{d@nV;-f2u~-BXFoD_yBPBXH;)XB90Qw`_F_f~^a(lUTkxIy<<*sq%uT=l z%eC5XX>2{`B16{OD<5I4MmDFBdBz!OjYonpz?JU?dBeulHZ9%jcjkJHt*3$T7&+P&E~DLbk;V`JrBz`(VTxUw;wwf0r&j5_Jk*IG>Icdsw$*{YiD9 zkFj4qIO95iyR(G5K>tK|ztT&S$5g;igmQ@%SyQs@1iNyZ?rd%b_s92rKc4NY3Bj#mHu%u z(|y_iYoFR9E*)X^d!Hb_wzj`mIh=BO?x1`>_1o0HdV_0h`NLIiDzi@JG~E%WBK;%% zB)&VTNA<|(kK|kXxIUztUSzK?>8oz2PAKg$sw1TRHuh`P+3^MHZHE3Do@6^$UE@6( zb03G~q_P}i=QFb9#*tB$GL!9&wUefi_>H8Fz@^)iN0q_Y-vxAk2wmy2F#q@3eEb0a1LG>5%50R4%N=NKBjHi; zmDgKsT(;pG8HuLkGcv^;HKc#14PQ-ot&DE4GFo|n|8+K{6-J)$L_RLJvbq+0)q${V@|ONQ{8a{FS)LV^CH^X}X_a!hmhQRui)I*hyrsLCGCPYhQ~gr?4(nFZ)|FQYKZS6oZ=Jb^ zLG4reS?d=~ocZ64u9!$0Rhw)fe~}#W&yxRqsd9ZByBaiArqW5$r7F*O5*rrZb?{S< ze01jg*k*9;ctdpVAgWRxAI= zX{hvOfyx|=Yl8iuqBYmjy42Fz1uf;}O5EaQ2X65q-o(o+pm@<3h6@2r-zfbz6aA<2 zu+m*`mWtJ_Juh;`z-e087mRJxcQzuwc#8fnNqs{O3&XpprJE!>?9aOkFIJWodgu$d z`v_ds0r8`AOs_NrGDRP=ACERpxWZJY?r99dSYK>QQf{i((cGyXXUNSOt?;<#Vh8s( z_!nB-3b^VYf-?n6%$Zkn))!q*|7prb{fl^)9n+kT$enaw z>nVq@ZfHEDvE^K&S7%lzvlC`&uONO6>0#LQO2hBv%~hQ> z;mpF$2yrzIQ5+|wcbM(?n)4wZWf_jq*YYhn(D#};`_jjQdBs$C59Q&&-&-G7z1UiP z8#tLW>a6WAixpOwF{$ci9qCBcKNEk!z6j(L(+b-xy^oC42I^7)Kk^U8mYi|1?M`h7oy(k$yWDE%&(?ZD_@|{klUsLh_1O z`q32oY;C$~pJBR+hq!|GoNOGOv(kK4?-;0l72eXkx7Sx$$^UB6p`03P`0s`{&1)qW zCsm5Nsrq5c*D&4F2_K4g9duOI;TbAx^EKt8`V!3t?I&G&i!xYIeISR;FIVp;3XA-& zvoEQ>IN3X7-PM)*ZwX{BS{fhx#oq0eNcM2oIOlNjQ$6{k_1C*ajPdCYFRXNsCygP4 z{NGi5V6@T<+VxM6gZZXEP~G`QGE6J)HTB}4ntCzWmXGEWwdJk(y5yqvAD&ZFz1UZ_ zx&7r_o36$hlHpjj3!A3q5KRZvr-e4%+WPdiY3o_tEAtQQ({Az?%}_s(x$2qvQ0+-q zTZvIl8Z%LM`Zb1l} zhxxYI7bgFY?hX93j@g>!jkFs4KPxZbYu+gxB>ZNBU#ie=nzk+8#b;~Y)cyXDf9b1= z@=bhnma$cYJZT;C7x1gRYynDV%1`-v(&meH+NOPLTKg2A1;dUM#iLKUQ^y^!mwjYv1X9b6WenPc!-WEO`+B%KI#vhhKviD~_mkq}cCD zn0TLPd48F&Fwa?w&oqA@zRAChbBvAiY)u^9ohx3-Hcl&P)W%`;%Y;8x6X#Pl4!WPY z&>GtBi0VA#B03L>4sQ7;u!CG`{Wlo@8`-1!^51m8djX{&|60$ckz)$x&I?S!O zQ_WXhkR3s^?=b06ZupI`JlrC>sSyU(MJ_7S|5iH&|63Mc@^7^G%*VKMnR%3z@u0;m z;13UjVVYN3zG;t5H%NCdKkES&9%h_n$873z)IaI`E@OY+&2hidZ}#rgTPx?XqNDFZ`SX|XL;mZFBi~9?^ycM%_F-kV-w_}^1BMC za-RoO+qgn*&e3R`v;|q#r2@Ss+^^d7=X58JG%=kVIfIJ>re|Ip@(w%oJ>+gz>uW?DMTpZCdco=uat;rG=Q$>MVs z_rENz{AOF+m+?~_2=g-8;%=#-d#=TO9=}lcNS+_DxKH69=4I!bf!wQq|8QQ6e5o(W z%a3Gd>O$t-Hj@$5i(0eiRz310~ZU0X|*>B$mb^`wZ91q+L%mCj7P6O@&Hl%|2z2g7X zmI?D_(%|k>!euib0E%7}D0=-s(W?MO@3%nFdkZMuW^N@d*5f2M(fOah1$Fox>Y37u z(RM`lZJVCPZo)O|5*GJu{DfBrzI5=fEbi+TS9Av~?yvBZ4N!Oq+Tmu4tFc>1_f3nt z+0w1IbnmvfvFuV~UntvlBl>-|ywz@MdHJ@DqkT29BZc+_@sP+a-pBKjkaj7ceZQrx ze14~fw&KaoCH@!KICm>gHMCWS#M8GFFPZg^pv*;QiKVj|xALTZFAkmm`5(#LoLd=` zzG=j-@r|GyZi99rsdu(+_G8wsHQ5{aHvX;nnesdBCp-S<*TEYniu+f}Ryt9AL?XG^ z#QksUw+KIttLWngW0TkE49K9|vc0KZ%&~d896XhW{1({qn1i42q&ro|&bPQ1SzP&j z#p0fCakZwRdiZ&ZD_t+T^1ImLejY!qht#KoenT?3(}qdci-zR6$>u@2UN|b}y%tZp zp8IHh#w|vs;|aUjhJA{#@z59FCLVadvSG&@5Y|c978}+{nD`3gjVJ6`8`ge6n9>gO z-bPp_@wB%(jC-k#hpsogD;?3+TWNhZEJ2vc&+u;Z+JK*MRQ^5IFM^-Sej5JYG=9_} zbeZ&w;{S)m+k-v~#xOVg4_m)K;wM|6;{ThC`z~=q+woV~%dGL}90ysJXrsv$*j`su z@A;^+bI;hI{mh_^B?_8%ir2+{@i)}BG;>qtxR($%i}5LT+J5GAcShmK?NeEy0~u55 zy#ck4C}$EG1DLl_7-LsQvuB?%Hg6JWjCWUc=XK1bvswQM?%S`+5JvmzUe)b&GnZ~$ z)$5HUuJqTxzOHd{kG~$+3Y4wt9=>CoGsmuJ-VD;5`#9ybnDwL3Q{HZDb#~6@+9C*^bm<)pHau2K0+a&@m2_6x0fiYIte889y7T?qC* za+eZsCbN&0@fSS)u1@#Kao291_b`y{{H*37U+A9#aS!r zzv4ZoJJkv2g5QdJ9|NYXxqM1;AN&lwWz?xKY0%u1GOR4YYSDf_EtN%^jb?1ieJ(ismU3!An^__C5 z-@J82`E2&yV(;h`@bVI8E=PIMf>+U<2yUv?cT(PPm$M&3QW0-ybY&&tvH#P1iaHWy zPu5f0qB6LdmgC`mM{=b5L{5_!DJAl&7+krEI+kg$}HwM%PYYnuXysOP< zZTcEphZ^$Bysgwx-Tkj}Z*{u;jaKF_$iEQ0t0UQeKwIC_4&DcWY@a4P-gj4(wJbCD z6OPjOyuvBl|0LW^Utg_Fzd0S0(b-BLoIcTjzc6kly~4j+eIH@>6Q(o#%q`oLzaQEB zJ!13sL!ioBX(~^L**q}^H1h-TDxMYgiu5V)%9og>4;u&mFPo67-04h(o&* zKMAMTA7f?lCv;?Mav5X(UjInz_j~;AXl`bo<%Ru?8SdbOw&^$F=U&={n=Y|N!@S*j zZ+rT_Qf1ja%e;bH0RQa%rh9rlXHhTr0+2`2QkxiR=_W|$4QMBvrGCQtDeYIq1AYzG z?&P=*P#mn@H&MwE2 zg>CHfG4)rn-DKs;*x2l)=*+LEjwzwP^0c`U_RLjFyqn2O<4Nd*!c_K5_j+#MX|#pF ze%DBui;kK1QLZj`h6;~8GOU4qy+4+k>M{1_Y&36or&zV6ZAH&c<*lS z_VhOAm=e0Uz1QnVvyPJP+15dyp);g^Bfh~!mP*S_o$TLk`CbCwEzr?851bM6vx`S8 zNG~3N?O5+9_#cereGc}1?E!uczuJCDeUNV~J zZneQCpxR&@croFUx%$F0i7(uXfvT6{b)?}l(Cxqe$o_h%@zPhoYbkQa8Z^{Ly+n8% zcNhLsUgo4GYn`&gWyF*(4Eq+@2zVO%FXrldgxzirn(OTL`Y>ny{9(*n6-!}r) zzb9FHyZ^Od?aj%u_Yj;|w!CdU;o84>FHrkAOTbRx-9YX4Tnp6x&pUzBfNOv=vpv;W z{B!*0@Sn?n9{)W5`TQ5?o3)vc7wlVRpT*6@)!O|M;A&tmumluuUGNs*2m3a<3Dfvw z5isQcrjY+!R(lZQIr?Pn#ns-=`HuS3Y`^x4El^*LzxEL*ue~QRCON4{zYxqT=ULiU zSlV-eiX$3&n^))fSup#o`p(f$BHNLx){Pi1`63tT`$N_5!y7VY$>hR*?tX7ld*;|WdyAG-Y0qZt zqB~f0##{FkEKZXax~Um?3n$H*xb%FCc$(*FjOeDH+V(bls9&N_r%hrjCQNH1>U;LE zZt~iHp*x_dbv!q{cpp8^J1rA`!rP9VL_3mZuMRXr`ilP?@u#6LG`13d&9qzY9HT7~ zpR^QDynNmALD_MCK(If8xpp8IWb$MDWmklvW-mN@)nD{=DEea`$hnRbVq-5k6W z&Cq6W^Q;cvL-g+3R|gc+6(ao#x_M zHVT(D63WWVUxoJ#)fsR!&R1WYppGuEe$;zoyKBX7H}m6bsYh;-H8IkFJ~Cfy^ts|o z-olff6z*l<7PIU(vFWm2qkY@P9-^^=(jKts{1*iPCh5OWbzsuN$0-YPQA*CVv zMks4++52Su82-;8;||i3%$E$MjNmbl!%6;pn+|InO;6aeP(L7j!Jd>mbv`uWF^(;3 z+{c|E%r~6WO6uybjJ#zdcgxe5Kl1(v^&ndA;w^8=;(~2TgL7MjAqdNw12f1^m&_Er%yji+PqUnd(iz^;XWPhd7`vWv74W=>KJ8bmRi4w|0g$J3H!V7?qBs=;eIK}ua0qh)}w!9zm1_={yX2Z zOgZYFJ@tL`VXX7AzY9Jb=jq;u({C?woKiRU6fWYPIOFCX=i4HDOP--zO&>|yG4pHI zdfWo#lv5on^=tot#(1vAc-U(mBHwAN^RFXM6SKkmYQEYG^)Bv|Dt}VDK;G-wi<2lW zW&9S{i*{T8yR}CrAFQ1T|9B*k|%GP;Er>GKG1T zH_2G;Us}8ufic`>J>RY&Dg1YT3i9$tWEM{aWBoe(e_`qT4u9F%r1RrvJ1}AKhnk zh2oDS&90g>pE@ATcSWDFl8y}1%+{o-^dyHf@mnyKIt4E6WavZCnaBC%TA8VQwxTyQ zC+B_u|2{WcL02vl4TTv!O<5nMvZjp0pOb&BdO5O}9+G=6-%2Bv3)bdXTN*Tdf(<|0 z=4Dk)zB_98RXr4)ob{uxc%u$7X1L1swHdO7mnJA6r6GZMlxJX)%^Ib5-@z=<~;=uN1E{xvu(0=|$4^h%3KV z{NA;GTZ#7uxP?c8c9*2R$M}b1PxNMRmtdCt1WCrD8TDCb@6+3&H`4NUD6*G(8vCSP zv-BCKJwV&n_+>{9y(S$a98(tX1bzDVAdi1l`QV3K+l2EeQ{H;VF~eLYi=KDd{!Tdh zy$xHTk<0IF9QFv(SK9rZ8vBzUvkxU-s+@+MPPWAec@Y269CMOI+?%}$ea+m1e%tH? zK%bej3#VC|lxB>VRpw@bR4AhvZF;^NIE36oCEp{V^ zIiA8aHkqb;_ho&hEqbfi|0;S9TY7z#-h-CjM&R?Lt+>LQXyap#X;b=|TYuX6NxtGm zbL(TRAM!Qj)POv$uzu7hbP;EFpc%zq_PI-JnDz*0eQ_n}#!5Z3N5{NB7p@1GF#%wCOAVhg%#Pw@F`q$J_M3hu>6i)6kTR{-$)`OX<_+n)KyAq$d3tHR=D( z;?w7vvnZiX+W<|Ko#egE;z*7+Lo-(sUvn>|*G+uYE#W_mE(z;aNJr)Mip3Rg*IVA? zKVb1Cn|U>~pR@S$pgpffHYyw8sqEjjIG2E1lt&9vgNzVPStimH2w!@%J{2KEl|mmF5h>k}2+N zuwlH16^w%jn+hLS*5o%yewA1C5qM!0_QD0EM=a#%)uow0>;J{uY#tt1iPF zF30)@G-`EaW0rB!BF-<^GQ1vIdJ|rZIb-J0A2U~S%B%@{=ySdgqVH|liX50H=Qe#pY~YmeJ>*t==Qh>9P>b`tXRomYc(Pvz$Z8~<_QOBS-b&9{D9{})YT zgR}Yhit*D z3^~33UvNhicd4W|N#-OM#zUVb1ZXJ+sd0e_dlX#>vvpia+1R zz1GIf1C>v+Z;!F3&b+DqYrH2KuXnsyxx&&=nW`Nq+|W<4KKJKeF9U``t$P0?_u>(f%p{TH-12frcC zb*%qzM<9FN!*f*Y?bvx%cCAVGd$XaD3-(ZcU-6)?`nq`Nm(5zN%e~t-GWL+a=8@t2 zMCl!E%UOAIQj%@JM~C&tc5D1qFNA-n_5Th2e`gI-V>`vu7+m3oN9?8O0JDESoWDER zwx6(N|0VM6u)Zgorq(4cq%ADXE%GH#$#*ICv7cFfXArhJ-)r`?%0Bvx_5VEnr9!VS zTdDd1jg?ggrsCg19e8)^-kmAnF5np8AW-^!LgvNl0N>K_RiJcyKTtZp0-Oi@EwHW_ z^wn?jEj|ARkbGhrDfM?If4yx2e!Gw2oz0_PtgOkbsIKK-;=i7MAOEX(6E+Tv@z?o= z#x!RE>EBq>_7(RHwR!lZ&uS9C&qH7QJ_{7T&j5utnRO4z^$E2-YcCM~A}a^kkEHh% zccJxjq1j2D#6Dow=tS?URz6z$X6~}D&W3bVPO%hki((i00`?`Be5&0J$xilHo4Wdi z{!VAbJ6YL8bM)64<_(gEE%yX@?6`(|SM#@5>&|AsV19|&BP8C$|JBnYJL^)Wei=P@ z2)HV1>5W*5^Ey^viTBmYEA5nZM(k$P5f432dcteqJ?I9fhj;CG&yzcP4|X2p|6v$) z)^f-C${n8N?Z>vx%3czKhcMl9ZJM-Uv#y3cRra_$xw}_=N+rr(g1kdr%JY^P<)*l< z!+6BTdxdxhBc~u8*0JD8;{~;|&|VVe??mEYFB#PQSMy%k^<=j+az`&JZEWm!s%^@S z*pNNhpNQOfBM_Uyig(bL%hW#1ULAPow6fQk>gV7uo@5LGzau&G(1NTFGkK>@Sbike ziO4mLT(yR%HY;1>UMnN=ARdyGi^f9+rAfjig<2i&g!Oa@!SG5 z3Z-%5p*_>#UAYu-3mdRi-(p}Sb*twV!6}x;EhxORJ;J>bZeeOyA~l&ix-K%`LpaOE z9UavL#fP?QzfBza3kvUT|A^~69Sqa(+ec zfH(G?>1iEC-%jaFPxpxFJKA@Km+0%MUQ60aH(6R;)ji_xU~h_)?%YSKsdR_ur0(T@ zuRFX9IKlUKjbC#gG9;|I3@^Y$8D0!5vL+8NeWh{Nrgm;maL2gPjF+de?h&TX`{Ly@ zy=1wks&%VKxwOhHPwrZ1`DsB8deZ=d_v5_z?73y=l}qCysUqtK8~sRM(VGHJ@C`rs zHTNNNLDdVOn}l}*DO=0W!t&1TE_YS2mSECqQk^0HEz}#O*Gl~;D@|yGX}ZZN@Sl(i@Ue z{l1{T6FR(=YV!Z7ke;o#@d9N_{fQTXdKIT$h3)p*)DG$q?S*>OKs~xPuX=l4e<$@v z^>z$p!(8C;h~ij!i8SQ~y{JdN)At&E5r$ot_9+|MMf&6}&ZSka6Fti3`AN@XKR>5` z3}uu~b8kKR?Vv!v^-EuBEq|hUJNLZ)$)u-#No$?MzI}CNLl=F4a0_$&ZJJ-EuJCzd zq(YmdU3%l13QIla5$wshg8m49qi+KLAILv-8Tj0}Z}A&=caZ*X&?#Kbn4CMY3eYKd z;~G<49{b9{zY_cl_Te}4Zpkp=m#$b(_>4|ilEJGJ+ynRt5l)$(_A7+3tQIDo&nqajTpTrjOTJuF7Edi$OkDX-tvP zdK>rh7gv+t)z!vihW?PcmNsLSagC;Jb|34cFY&KShq{yXPueANbYtkrdd6aoa|!cc z;yJ`~N|@JjKJRXEzvz40r2|!m*wav9e9#rAeTQQOy_**Gr2CmeqB~+MZKbbtD}7bBQ>HGHZbJ3D@5)=;zAL*D7G$uOdo7PYP>0etJ05hrQg<|cn%<>DhUbx&t8Q`2S9L|xtGEkN?|R%z zUpw7zO+kly9owN3P0?>to|Nf0Q?_~N% zkt3li{cFd}M*pVJEpL7$!ua|;tZ%XvTfOu8H2yJkSc>&Fy@kWQ?TocN_J&8RvD9#*(_(z99;v+=orc~! zP_HQu|4grm=aJM)-8m)QrhJBZ&>k0^>DIWoL+ypRtxFw>5l4GaBFWp{Y0a_sj=yMNV*=_v^?zIpKbJP{(C>B1MpD4PP#RZ<8@Z2m@}+S@Jo;E~d6n`UO}UO6LRbU+ zKo~y8Bi_*Eyg7BN7h`-Mhh{wgeJ`44d}+%vQNT|$E&Y0h<)D`oRcocpDK9k}z`#tXP zxosa`E%FnskWYox@@c7>8sjby$f{nLv3Hug%# z(8D7c1B|1NhGix_IJ8C&KDdQ)&2#R(Mh~WFe;rxr7RHZhcuAMWjX@{W;ZD=0hLkd% zbWfyshNu2&0`-Txr@d$&!R^x(ZNAI7Vd916sfaXVm9z0fe z1jLG~tI|I&(S{u7JNsnRi9dH(o4HG)cqze4DVV#k*QKKQO2o;azwA5)zRa8gf4w2E zd4=W~tWQGc!b-dZ52dNc-q;t+GvbBS)f-FiZT~sxHfd~X>BkFnDnXYy^nQqLF>VWKdvdFf2+LV>VBOiMdc++B^d;n%@4C{-UMqEG0do({ z6QmzC2R>10stspJllC7?Lp%FDXdVDH?oWe5yZLIipSc2g%bwEJXy%;EL--!zsDGvo z^BqZNg0TSK>U+MLrT=zL_VkARvy-0Xd|6L5W&5ATn(=>!#{cuw|9qjJ^}5F!YWttU z6^zsAuZ?^d*E=_RN2{MHT!}yZzxCHRoi%bhPG=rq+5qEgblD2|XRq+Jcb5E;XXw!9 zmj4NU`k(mc{)zuY{KIj&`qKZ~ak}L4&-ydTAVqnpKhqsql3UoH$zJbdm>1EXX^n}^ z_eL*12>jr1?H51Ace0z%d(-=`=R8o9ygrh?r4qGo-M@L9)&w{g2+cEpzIW%=5xmm? z--k+vGG;zPdlCpgov;{uY=$nK;UMYh&AR^e;IAj0IZ1d*^;Fm5UW>Z}_YB;taj(Wb zk?$ffjeiXKQ*p<#yjhlJ90F9HrUA3SG5ja+@5DWxe}?}Q{$GNpnGSfwpT)QKb+K&)9r0$#=3QP8@gqfH(=_>}la_LC3l( zYgk4G8k6tBuYoYhU>o1cANMX*-_$oeN*1s1t$fbldkf!st4*@l#P>wteBe}|##4{- z{U~XKGTn%KBkoY9;(sXVt;K&W{@)LI!LNv45kIBhN*YUXFRh7Nz+J$t@^FCvs63L{ zo~p*2;&%F>cTmK92mt9zX|7Pp!7x0slh+E_F3Akmu8IN1_B#k?bd*-O1j;PJ3 zz0|f5)iu>IQ)WQZmVjzY2ezMYi$})ZYCkj6J=JgF4%^VbSRPf6Ri_^t7Svs+Vi{ZsA*e7x@++s#{C>PVuceUgVy9@uhm6B`-13oJaUP@)y?i zIk@NG7JbQL7VcTNMK^4>S^OlI$B18BFMf~ARbO=1fJeEgY>%|%`l9v*)YOaNwqEG2 zfe?43#eMn!+_=Sk0)Nr`jFn>@X{bI(mM`11A5mQVRVQAweh=cOI-z>^=bv#_($>4> z$m4yB^F44z;=d3->D$@1KCM%ljCqx=Y#FcGIsSL>pTYi9;i`^RpsVvtly86LZ1$z5 zH&y==cMLnhnufUZ02_o~84-8lUDyp4jc_*bf1Q7se+rxpAB{VE3i$C~!2dD+YxqCW z6nCZqTlp{j<_Kp8|Ht^3hQ*zw#GS{#m4BB1c>W3Srx5P&AAb|^`7hwVVIlGP&*dNI zKb3zc|JT1x82<(Qcif0SuvLD1&*k4K2!A`oBmZP$+?o6vEDn6<;bA1STlu%}-|~$S z&IkOr@h=e82i(Yi1OF`l<^1#fi-e_tWB7OS-z=VhJAglBGB^?1PXe_*uKqQe!M;WR z>QV*~%3|I)jZZiy>u4U?GeY}BbH_Aed0rLrrf zeG}XdDZ5J=J4`xyi%U62iZ?qk#{Dhj<+_)IvK@^*>HL0dw72d}4_CgM+}ye5-n0`l zUjIQk@yQqqzrP{}rS~TBCfP9Q0+sziw(O@Uf0Vt-H-ntDKRsUT^{?RlW8I@7c{JO) zBih`d+jF@$2mv(2ywAoU>>ewN? z2aTSsc-caA8~ZJeBTq5#UMRrRPZYOk>lcHvOJUG}Z8&W*_|7)QrRqiWuEE%hJ5`@_QDhVFj&W8|NA zVjbLCXU#BPr@k%w3U%*9$G($}tuu3?&Y9#Mb~x+(xy1DTB~k60a9()spy~ZRjHN%p z_e#DuMVuzqd)~O0?_2r)5B!e+KgTy??lJV{TAP3K zXr1MpUb&VuXqzuwLija&U&wdcn90<`>6P`w+lV`A-95NZh5mXQcPZ`_q~Y4|n{b~E zouxJDd=~c?p^NeNh2!~N0?s%2KB#$me+S>cCm*lD<6(T4p!G7}DZY;bcS;SNi8jp) zv`!{|olR5jFXFx${HetI3-nqn?quBO*YGEILlfst8~4lMP~x3|e+C+7koGZr{|y>- z@FzY#NBrU7e1h-K6JD-~``A%|3}2vZzCrwxz?%eKiTEWO_8wuP5z6Rz!Y6~*Q$weX zv<}Dr2597MJStbypP+LYxEK+eGSIk`Z#t5uEI3)>tBk_(oMPjxQ+m+30o-kT{{R|e zY}hNfPpskPZQM74mxNYGryVzw?WSjlw~YKMy(DoK^Nq2yX_V;3_v3#Y-tWf$tKe_# z40saWpWz|Q^Jaw;@6nog??O*?`Xb_ehOoEz{uJpP3_T9>HT{9`r8W4+fb#+V-va+> z!dCGuzJAL09=@ZL>#Q358J3rB!j2`*#l*jf?-PhKo9}P(JszC##Hp3zO@w_9o%#U$ ze}nH=!F!$W!{F-|e8-6sKOoMT;N4D~KJZTAdo6gMB%Pte8O!&ZN3N^B+3?|Xw&JIB zmlN+hHM05^_#Yu|D7#6xFNfxO;)iAQCEQ2hPv`o=MSQQ}J7U{Ip$6~o$VPbYgZEdy zkLG(4__-RKLHuXp|3h%L^L-)TCxDZw!MP6iZTLR{&b55gPMbQ8WWE7Tt?b4Tb~0gi zf_E(6EquQKO{a#|;rPQ()AQgoBA>5=a|<|L{r>zNYW*pP7p@0?Avo?Q0-f|k4c=9R z(cYVW0p3^m{wv=h-kKV`PZIW9!o=56e0zNVD`_sM!8sMT_<9hW$$anRdnmXwYjAGD z|2TLlf^#F^)YqoNz?o2k6PDZ0h<^)sq5H?UKM!v5AK;Rv(TO4M8PGih8SJRrFB6Y% zqqi-5-NIKa{3f)YhR){0gEILE-yyxnzzOS4pAG*u;U6On+Ede dp1GaP@(Yq`aJ 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 r_LPD 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%0A2p{kn!NFT;p+)>Ota^bYA6y@ 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

rCSFN1Lctmm@ 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 z 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%0D>8!$co#?&u@zSNMvdFqSEV`i>ms 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

yvR zr>+H!%@P|i9Z5CnWBwTZN9D12@%fC&V)WO-VmkjU{k5{jZ2ww5P86oOO~;T}{Qop{ z=YH-#@{ZqHKPwOa2%cemr1|>Sf3m2bJD@c9-tqpE#rsF) zC$oDp`9Es^xAfg~G=fhAjYwJe{q^VCQ>=dlv>uQh%_pK-RmA&~tp4WOph9&9;;tav zkxqxhZ(mTGaFFQjt?3JOx|361nJ@Xdc~P$Q z`^PDJQxzs~j_osh9Sf<8ZHa#G{8&e~Sb5!g(2A=O=Mc5*v#rkISZ(PXF4;i2jq$%t zlXzi}TF`ABox957K`dyusfwjLCUrhZX<73-3AzW@XPwixTQ5B>)11}&IplOGyPLVt z?(9ZQ|E0(OxI@E#ge^V( z|3|9%q=}Rs|4WbmrN{r$^S{#dU+Ma12J5s diff --git a/3ds-zip-extractor.smdh b/3ds-zip-extractor.smdh deleted file mode 100644 index d76326486004f28c43ec82781213fb579415aa87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8256 zcmeH~K?=e!5JkT?@eZCqsNkk6ckYUc3Sy;-dYs-=e@el+C=_Yp<_#q?Y06|WA(_`z zo-JjWDbq?*t##DJdZDLos#IuWUD}E(ndf-utdn)2ts^Mh3wrkzNqAp5ri0_Wd+ZuF ztYqHvc3q|RUUzz7|I_EZJ0ttg`49IR=b!tZ`=9#Xtqmz`>VJwX_s>E7r~Xs_`Tv9e z;6L~e{_7`&I3w_1oV*V83je`>@E`mK|G|IoAN)6z8^-z${u?Wkzxnw$|JAjcr*<3U OWoeAInNPaCkNpM#I7rF> diff --git a/CHANGELOG.md b/CHANGELOG.md index 43bacbe..4bd08c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,61 @@ # Changelog +## [Unreleased] + +### Added +- **Modular source layout.** `source/main.c` has been split into focused + modules with public headers in `include/`: + `led`, `gdrive`, `config`, `download`, `file_browser`, `queue`, + `integrity`, plus a pure `archive_extractor_detect` module that's + reusable on the host. +- **Optional integrity check.** A URL line in `config.txt` may now end with + ` sha256:<64-hex>` to verify the downloaded file. Mismatches mark the + item as failed without extracting. +- **Configurable runtime limits.** New optional config keys + `max_urls`, `download_buffer_kb`, `connect_timeout_s` (defaults: 100, + 128, 30). Values out of range are clamped, never rejected. +- **Per-run unique temp paths.** Downloads now land in + `sdmc:/3ds/zip-extractor/tmp/run__.part` instead of a single + shared `temp_download.tmp`. Orphan `.part` files are cleaned up at + startup and shutdown. +- **Honest stubs.** `umask` / `getpwnam` / `getgrnam` / `LZ4_*` now log a + one-shot warning to `stderr` the first time they're hit so unexpected + use is visible. +- **Off-target unit tests.** A new `tests/` directory builds with a plain + host C compiler (no devkitARM, no 3DS) and exercises the pure modules + with vendored Unity. Run with `make -C tests -f Makefile.host test` + (or `test-asan` for ASan/UBSan, or `coverage` for an `lcov` HTML + report). +- **CI**. New `.github/workflows/build.yml` builds the `.3dsx` in the + `devkitpro/devkitarm:latest` image, runs the host test suite under + ASan/UBSan, uploads `.3dsx`/`.smdh` as build artifacts, and publishes + a GitHub Release on `v*` tags. + +### Changed +- **Hardened extraction.** libarchive is now configured with + `ARCHIVE_EXTRACT_SECURE_NODOTDOT | + ARCHIVE_EXTRACT_SECURE_SYMLINKS | + ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS` to mitigate zip-slip and + symlink-based attacks on top of the previous protections. +- **Resume hardening.** The HTTP resume path now detects servers that + reply with `200 OK` instead of `206 Partial Content` and restarts the + download from zero rather than appending to a stale prefix. +- **Config parser.** Lines longer than `MAX_URL_LENGTH` are now drained + to the next `\n` and recorded as a single (truncated, NUL-terminated) + entry instead of splitting into bogus extra "URLs". UTF-8 BOMs on the + first line are skipped. +- **Build artifacts no longer tracked.** `.3dsx` and `.smdh` are now + ignored by git and produced fresh by every build; releases ship them + as Release assets. + +### Removed +- The hand-rolled ZIP/zlib path (`extract_zip_file`, `mkdir_recursive`, + `ZIP_LOCAL_SIGNATURE`, manual `inflate`) is gone from `main.c`. All + archive types — ZIP included — now go through the libarchive + extractor. + +--- + ## [1.0] - 2026-02-05 ### First Stable Release diff --git a/CLAUDE.md b/CLAUDE.md index e6856ee..65d3f2b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,8 +1,8 @@ -> **Stato attuale (2026-04-30):** questo documento descrive lo stato **target** del -> repository dopo il refactor pianificato (vedi prompt di lavoro nelle issue/PR). -> Alcuni moduli marcati `[post-refactor]` non esistono ancora nel codice: -> al momento `source/main.c` è monolitico e contiene tutta la logica. -> Aggiornare questo file mano a mano che il refactor procede. +> **Stato attuale (2026-04-30):** il refactor modulare è stato completato. +> Tutti i moduli elencati nella sezione 3 esistono in `source/` e in +> `include/`, la build con `make` è verde su `devkitpro/devkitarm:latest` +> e la suite host test in `tests/` passa con ASan/UBSan. Aggiornare questo +> file quando si introducono nuovi moduli o si cambiano comandi di build. > > # CLAUDE.md @@ -48,14 +48,16 @@ L'applicazione viene distribuita come `.3dsx` da lanciare dall'**Homebrew Launch . ├── source/ # Codice C target 3DS │ ├── main.c # Entry point + state machine principale -│ ├── archive_extractor.c # Wrapper libarchive (multi-formato) +│ ├── archive_extractor.c # Driver libarchive (estrazione multi-formato) +│ ├── archive_extractor_detect.c # Magic-byte sniffing (puro, host-testabile) │ ├── gui.c # Rendering citro2d (top + bottom screen) -│ ├── config.c # Parser config.txt [post-refactor] -│ ├── download.c # libcurl + retry [post-refactor] -│ ├── gdrive.c # Conversione URL Google Drive [post-refactor] -│ ├── file_browser.c # File browser SD card [post-refactor] -│ ├── led.c # Notifiche LED MCU [post-refactor] -│ └── queue.c # Gestione coda download [post-refactor] +│ ├── config.c # Parser config.txt (puro, host-testabile) +│ ├── download.c # libcurl + retry + resume +│ ├── gdrive.c # Conversione URL Google Drive (puro) +│ ├── integrity.c # SHA-256 + verify_integrity (mbedtls/host) +│ ├── file_browser.c # File browser SD card +│ ├── led.c # Notifiche LED MCU +│ └── queue.c # Rendering coda di download ├── include/ # Header pubblici corrispondenti a source/ ├── tests/ # Unit test off-target (host build) │ ├── Makefile.host diff --git a/Makefile b/Makefile index 2798a62..3eb1cfc 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,7 @@ GRAPHICS := gfx APP_TITLE := 3DS Zip Extractor APP_DESCRIPTION := Download and extract archives APP_AUTHOR := Marcogn +ICON := icon.png #--------------------------------------------------------------------------------- # options for code generation diff --git a/README.md b/README.md index a6b4c12..10d67c5 100644 --- a/README.md +++ b/README.md @@ -50,19 +50,31 @@ extract_path=sdmc:/extracted/ auto_retry=true max_retries=3 +# Optional limits (defaults shown) +# max_urls=100 +# download_buffer_kb=128 +# connect_timeout_s=30 + # Add URLs below https://example.com/file.zip + +# Optional: integrity check — append " sha256:<64-hex>" to a URL +https://example.com/strict.zip sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ``` +The format is **backwards-compatible with v1.0** config files. + --- ## Controls | Button | Action | |--------|--------| -| A | Start/Confirm | +| A | Start / Confirm | | B | Cancel | | X | View queue | +| Y | (in queue view) Mark failed items as skipped | +| L / R | (in queue view) Page through URLs | | SELECT | File browser | | START | Exit | | D-Pad | Navigate | @@ -71,11 +83,36 @@ https://example.com/file.zip ## Building +### Native (devkitPRO) + ```bash -# Requires devkitPRO +# Requires devkitPRO + devkitARM + portlibs 3DS make ``` +### Docker (no local devkitPRO needed) + +```bash +docker run --rm -v "$PWD":/src -w /src devkitpro/devkitarm:latest make +``` + +This is the same image used by CI; useful for reproducible builds. + +### Host unit tests + +The pure modules (`config`, `gdrive`, `integrity`, archive detection) +have an off-target unit-test suite that runs on a normal Linux/macOS +PC — no devkitARM, no 3DS: + +```bash +make -C tests -f Makefile.host test # plain build +make -C tests -f Makefile.host test-asan # with AddressSanitizer + UBSan +make -C tests -f Makefile.host coverage # gcov/lcov HTML report +``` + +The CI pipeline runs both `build-3ds` (Docker) and `host-tests` +(ASan/UBSan); both must be green for a PR to be merged. + --- ## License @@ -87,4 +124,5 @@ MIT License - see [LICENSE](LICENSE) ## Links - [Changelog](CHANGELOG.md) +- [Architecture](docs/ARCHITECTURE.md) - [Contributing](CONTRIBUTING.md) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..d8fdf7a --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,93 @@ +# Architecture + +> Snapshot of the post-refactor layout. Use this as the high-level map +> when adding a feature or tracking down a bug. + +## 1. Module map + +``` + ┌────────────────────────────────┐ + │ source/main.c │ + │ state machine, app lifecycle │ + └───────────────┬────────────────┘ + │ + ┌───────────┬───────────────┼───────────────┬─────────────┐ + ▼ ▼ ▼ ▼ ▼ + ┌─────────┐ ┌────────┐ ┌──────────────┐ ┌────────────┐ ┌─────────┐ + │ config │ │ gdrive │ │ download │ │ archive_* │ │ queue │ + │ (pure) │ │ (pure) │ │ (libcurl) │ │ extractor │ │ (UI) │ + └────┬────┘ └────────┘ └──────┬───────┘ └────┬───────┘ └─────────┘ + │ │ │ + │ ▼ ▼ + │ ┌────────────┐ ┌────────────────┐ + │ │ libcurl │ │ libarchive │ + │ │ + mbedtls │ │ + zlib/bz2/ │ + │ └────────────┘ │ xz/zstd │ + │ └────────────────┘ + ▼ + ┌──────────┐ ┌────────┐ ┌──────────────┐ ┌──────┐ + │integrity │ │ led │ │file_browser │ │ gui │ + │(mbedtls/ │ │ (MCU │ │ (sdmc files) │ │(C2D) │ + │ pure) │ │ hook) │ └──────────────┘ └──────┘ + └──────────┘ └────────┘ +``` + +## 2. Module responsibilities + +| Module | File(s) | Pure? | Responsibility | +| --- | --- | --- | --- | +| `config` | `source/config.c`, `include/config.h` | ✅ | Parse `config.txt`, apply defaults, expose `AppConfig` (settings + URL list). Backwards compatible with v1.0. | +| `gdrive` | `source/gdrive.c`, `include/gdrive.h` | ✅ | Convert Google Drive sharing URLs into direct-download URLs. Pass-through for everything else. | +| `integrity` | `source/integrity.c`, `include/integrity.h` | ✅ | SHA-256 of buffers/files, optional integrity check. Uses mbedtls on target, a vendored pure-C implementation on host. | +| `archive_extractor_detect` | `source/archive_extractor_detect.c`, `include/archive_extractor.h` | ✅ | Magic-byte sniffing for ZIP/TAR/GZIP/BZIP2/XZ/ZSTD/7Z/RAR. No libarchive dependency, host-testable. | +| `archive_extractor` | `source/archive_extractor.c` | ❌ (libarchive) | Driver around `libarchive` for extraction. Ships honest stubs for `umask`/`getpwnam`/`getgrnam`/LZ4 missing on devkitARM. | +| `download` | `source/download.c`, `include/download.h` | ❌ (libcurl) | Run a `curl` transfer to a unique `*.part` file under `sdmc:/3ds/zip-extractor/tmp/`. Implements resume (Range/206) with 200 fallback, configurable buffer + connect timeout. | +| `led` | `source/led.c`, `include/led.h` | ❌ (libctru) | Thin wrapper for the MCUHWC LED notifications. | +| `file_browser` | `source/file_browser.c`, `include/file_browser.h` | ❌ (citro2d) | SD card directory browser (used to choose extraction path). | +| `queue` | `source/queue.c`, `include/queue.h` | ❌ (citro2d) | Renders the download/queue status screen on the top screen. `DownloadQueue` is just an alias for `AppConfig`. | +| `gui` | `source/gui.c`, `include/gui.h` | ❌ (citro2d/3d) | Common rendering helpers (status, menu, progress, error). Owns the dark-blue theme constants. | +| `main` | `source/main.c` | ❌ | App lifecycle: init/shutdown, state machine `MENU → BROWSER/QUEUE/RUNNING → SUMMARY → MENU/EXIT`, single-thread cooperative loop. | + +## 3. Build pipeline + +- Target: `make` invokes the devkitARM rules from `$DEVKITARM/3ds_rules`. + All `source/*.c` are compiled and linked against + `libcitro2d`, `libcitro3d`, `libcurl`, `libmbedtls`, `libarchive`, + `liblzma`, `libbz2`, `libzstd`, `libz`, `libctru`. Output: + `3ds-zip-extractor.{elf,3dsx,smdh}`. +- Host tests: `make -C tests -f Makefile.host` compiles only the *pure* + modules (`config`, `gdrive`, `integrity`, `archive_extractor_detect`) + plus vendored Unity, with `-DHOST_BUILD=1`. No 3DS dependency. + +## 4. Data flow for a single URL + +``` +config.txt ──► read_config_file ──► AppConfig.items[i] + │ (url, sha256_hex, state) + ▼ + download_make_temp_path + │ + ▼ + convert_gdrive_url ─► download_file ──► curl + │ (resume / 200 fallback) + ▼ + verify_integrity (if hash present) + │ + ▼ + detect_archive_type + │ + ▼ + extract_archive_libarchive + │ + ▼ + led_notification_green +``` + +## 5. Threading model + +The application is intentionally **single-thread cooperative**. +`aptMainLoop()` drives the main loop; long operations (`curl_easy_perform`, +`extract_archive_libarchive`) yield only inside their own libraries. +The progress/cancel callbacks call `hidScanInput` once per chunk to +keep the UI responsive. Adding threads would require careful work +around APT/HID/citro2d ownership and is explicitly out of scope. diff --git a/include/config.h b/include/config.h new file mode 100644 index 0000000..38ce84d --- /dev/null +++ b/include/config.h @@ -0,0 +1,75 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include +#include + +// Hard limits used to size the in-memory configuration. +// `max_urls` in `AppConfig` may further reduce the number of URLs accepted +// at runtime (clamped to MAX_URLS). +#define MAX_URLS 100 +#define MAX_URL_LENGTH 512 +#define MAX_PATH_LENGTH 256 +#define SHA256_HEX_LEN 64 // 32 bytes hex-encoded + +// Per-URL download state (used by the queue/UI; lives in the config to +// keep struct size in one place). +typedef enum { + DOWNLOAD_PENDING = 0, + DOWNLOAD_IN_PROGRESS, + DOWNLOAD_COMPLETED, + DOWNLOAD_FAILED, + DOWNLOAD_SKIPPED +} DownloadState; + +// One queued download plus optional integrity hash. +typedef struct { + char url[MAX_URL_LENGTH]; + DownloadState state; + char error_msg[128]; + // SHA256 hex digest, lowercase, NUL-terminated. Empty string if not provided. + char sha256_hex[SHA256_HEX_LEN + 1]; +} DownloadItem; + +// Application configuration (settings + URL list). +// +// Format of the config file is line-oriented: +// - lines starting with `#` are comments +// - blank lines are ignored +// - `key=value` for known settings (unknown keys are ignored with no error) +// - any other line is treated as a URL, optionally followed by +// ` sha256:` for integrity checking +// +// Backwards compatible with the v1.0 format (extract_path/auto_retry/max_retries +// + bare URLs). +typedef struct { + DownloadItem items[MAX_URLS]; + int count; + + // Settings + char extract_path[MAX_PATH_LENGTH]; + bool auto_retry; + int max_retries; + + // Phase 2.10 — configurable limits, with safe defaults. + int max_urls; // default 100 (= MAX_URLS) + int download_buffer_kb; // default 128 + int connect_timeout_s; // default 30 +} AppConfig; + +// Read a configuration file into `cfg`. Defaults are applied first so an +// empty/missing file still yields a usable config. +// +// Returns the number of URLs read on success, or -1 if the file does not +// exist (or cannot be opened). The defaults are still applied to `cfg` +// in that case. +int read_config_file(const char* file_path, AppConfig* cfg); + +// Apply defaults to `cfg`, leaving `count == 0` and no URLs. +void config_apply_defaults(AppConfig* cfg); + +// Write a commented example configuration to `file_path`. Returns true on +// success. +bool create_example_config(const char* file_path); + +#endif // CONFIG_H diff --git a/include/download.h b/include/download.h new file mode 100644 index 0000000..8460663 --- /dev/null +++ b/include/download.h @@ -0,0 +1,28 @@ +#ifndef DOWNLOAD_H +#define DOWNLOAD_H + +#include <3ds.h> +#include + +#include "config.h" + +// Download `url` to `output_path`, with optional resume and progress callback. +// +// `*cancelled` is set to true if the user pressed B during download. +// `current` and `total` are the queue position passed through to the GUI. +// Buffer size and connect timeout come from `cfg`. +// +// Returns 0 on success, -1 on hard failure, -2 on user cancel. +Result download_file(const AppConfig* cfg, + const char* url, const char* output_path, + bool* cancelled, int current, int total); + +// Build the per-run unique temporary download path under +// `sdmc:/3ds/zip-extractor/tmp/`. The directory is created if missing. +// `out` will receive a NUL-terminated path; `out_size` must be >= 96. +void download_make_temp_path(char* out, size_t out_size); + +// Remove orphaned `.part` files from previous runs in the temp directory. +void download_cleanup_orphans(void); + +#endif // DOWNLOAD_H diff --git a/include/file_browser.h b/include/file_browser.h new file mode 100644 index 0000000..ac21483 --- /dev/null +++ b/include/file_browser.h @@ -0,0 +1,35 @@ +#ifndef FILE_BROWSER_H +#define FILE_BROWSER_H + +#include + +#include "config.h" // MAX_PATH_LENGTH + +#define MAX_DIR_ENTRIES 100 + +typedef struct { + char name[256]; + bool is_directory; +} DirEntry; + +typedef struct { + DirEntry entries[MAX_DIR_ENTRIES]; + int count; + int selected; + char current_path[MAX_PATH_LENGTH]; +} FileBrowser; + +// Initialise the browser at the given starting path. +void init_file_browser(FileBrowser* browser, const char* start_path); + +// Load the contents of `browser->current_path`. Returns the entry count, +// or -1 if the directory cannot be opened. Entries are sorted with +// directories first, then alphabetically. +int load_directory(FileBrowser* browser); + +// Render the browser screen. citro2d-only; not built on host. +#ifndef HOST_BUILD +void display_file_browser(FileBrowser* browser, int scroll_offset); +#endif + +#endif // FILE_BROWSER_H diff --git a/include/gdrive.h b/include/gdrive.h new file mode 100644 index 0000000..f965182 --- /dev/null +++ b/include/gdrive.h @@ -0,0 +1,22 @@ +#ifndef GDRIVE_H +#define GDRIVE_H + +#include + +// Convert a Google Drive sharing URL into a direct-download URL. +// +// Supported input formats: +// - https://drive.google.com/file/d//view +// - https://drive.google.com/open?id= +// - https://drive.google.com/uc?id=&export=download (idempotent) +// +// Folder URLs (https://drive.google.com/drive/folders/...) are NOT +// converted; the original URL is copied through unchanged. +// +// Non-Google-Drive URLs are copied through unchanged. +// +// `output_url` is always NUL-terminated as long as `output_size > 0`. +// Safe against NULL inputs (no-op). +void convert_gdrive_url(const char* input_url, char* output_url, size_t output_size); + +#endif // GDRIVE_H diff --git a/include/integrity.h b/include/integrity.h new file mode 100644 index 0000000..1a05ee1 --- /dev/null +++ b/include/integrity.h @@ -0,0 +1,27 @@ +#ifndef INTEGRITY_H +#define INTEGRITY_H + +#include +#include +#include + +#define SHA256_DIGEST_BYTES 32 + +// Compute SHA-256 of `data`/`len` and write the lowercase hex digest +// (64 chars + NUL) to `out_hex`. `out_hex` must have room for at least +// 65 bytes. +// +// On the 3DS target this uses mbedtls (already in portlibs); on host +// builds it uses the same vendored constants in pure C so the unit +// tests don't need any extra dependency. +void sha256_hex(const void* data, size_t len, char* out_hex); + +// Compute SHA-256 of an open file (read in chunks). Returns true on +// success; on failure `out_hex[0]` is set to NUL. +bool sha256_hex_file(const char* path, char* out_hex); + +// Verify the SHA-256 of `path` against `expected_hex` (64 lowercase hex +// chars). Returns true on match. +bool verify_integrity(const char* path, const char* expected_hex); + +#endif // INTEGRITY_H diff --git a/include/led.h b/include/led.h new file mode 100644 index 0000000..b72249a --- /dev/null +++ b/include/led.h @@ -0,0 +1,20 @@ +#ifndef LED_H +#define LED_H + +#ifndef HOST_BUILD +#include <3ds.h> +#endif + +// LED notification helpers. +// +// On real 3DS hardware these will eventually drive the MCUHWC LED. The +// current implementation is a thin abstraction matching the historical +// behaviour: the pattern argument selects a colour family (1=green, +// 2=pink/red, 0=off). Centralising the calls here keeps the rest of +// the codebase free from MCU-specific details and makes it easy to +// plug in a real implementation later. +void led_notification_green(void); +void led_notification_pink(void); +void led_notification_off(void); + +#endif // LED_H diff --git a/include/queue.h b/include/queue.h new file mode 100644 index 0000000..ac24bb9 --- /dev/null +++ b/include/queue.h @@ -0,0 +1,19 @@ +#ifndef QUEUE_H +#define QUEUE_H + +#include "config.h" + +// `DownloadQueue` is an alias for `AppConfig`. The two concepts are tightly +// coupled (settings + the URL list with per-item state) so we keep a single +// underlying type. The alias preserves the original naming used throughout +// the codebase. +typedef AppConfig DownloadQueue; + +// Render the queue/status screen for `current_page` (paged 12 items per +// page). Implementation lives in queue.c (uses citro2d). On host builds +// this is unavailable. +#ifndef HOST_BUILD +void display_queue_status(DownloadQueue* queue, int current_page); +#endif + +#endif // QUEUE_H diff --git a/source/archive_extractor.c b/source/archive_extractor.c index 8a578be..2b6a860 100644 --- a/source/archive_extractor.c +++ b/source/archive_extractor.c @@ -1,4 +1,5 @@ #include "archive_extractor.h" +#include #include #include #include @@ -10,30 +11,60 @@ #include #include <3ds.h> -// Stub implementations for missing functions on 3DS -// umask is declared but not implemented in devkitARM +// Stub implementations for symbols missing on devkitARM. Each one logs a +// one-shot warning to stderr the first time it's called so that unexpected +// usage surfaces during testing instead of failing silently. +// +// These stubs are intentionally honest: they don't simulate the real +// behaviour, they just keep the link step happy and tell us when libarchive +// (or any other dependency) actually reaches for them. + +static void warn_once(bool* warned, const char* name) { + if (!*warned) { + *warned = true; + fprintf(stderr, + "[3ds-zip-extractor] stub: %s called (no-op on 3DS)\n", + name); + } +} + mode_t umask(mode_t mask) { - return 0022; // Return default umask + static bool warned = false; + warn_once(&warned, "umask"); + (void)mask; + return 0022; // Return default umask. } -// getpwnam is declared but not implemented in devkitARM struct passwd *getpwnam(const char *name) { + static bool warned = false; + warn_once(&warned, "getpwnam"); + (void)name; return NULL; } -// getgrnam is declared but not implemented in devkitARM struct group *getgrnam(const char *name) { + static bool warned = false; + warn_once(&warned, "getgrnam"); + (void)name; return NULL; } -// LZ4 functions are not available in 3DS portlibs +// LZ4 is not available in 3DS portlibs. The stubs return error so libarchive +// will refuse LZ4-compressed archives with a clear status code. int LZ4_decompress_safe(const char* src, char* dst, int compressedSize, int dstCapacity) { - return -1; // Not supported + static bool warned = false; + warn_once(&warned, "LZ4_decompress_safe"); + (void)src; (void)dst; (void)compressedSize; (void)dstCapacity; + return -1; } int LZ4_decompress_safe_usingDict(const char* src, char* dst, int srcSize, int dstCapacity, const char* dictStart, int dictSize) { - return -1; // Not supported + static bool warned = false; + warn_once(&warned, "LZ4_decompress_safe_usingDict"); + (void)src; (void)dst; (void)srcSize; (void)dstCapacity; + (void)dictStart; (void)dictSize; + return -1; } #define BUFFER_SIZE (128 * 1024) // 128KB buffer for extraction @@ -59,91 +90,8 @@ static int mkdir_recursive(const char* path) { return mkdir(tmp, 0777); } -// Detect archive type by file signature (magic bytes) -ArchiveType detect_archive_type(const char* file_path) { - FILE* f = fopen(file_path, "rb"); - if (!f) { - return ARCHIVE_UNKNOWN; - } - - unsigned char sig[16] = {0}; - size_t read = fread(sig, 1, sizeof(sig), f); - fclose(f); - - if (read < 4) { - return ARCHIVE_UNKNOWN; - } - - // ZIP: PK\x03\x04 or PK\x05\x06 (empty zip) - if (sig[0] == 'P' && sig[1] == 'K' && (sig[2] == 0x03 || sig[2] == 0x05)) { - return ARCHIVE_ZIP; - } - - // GZIP: 0x1f 0x8b - if (sig[0] == 0x1f && sig[1] == 0x8b) { - return ARCHIVE_GZIP; - } - - // BZIP2: BZ - if (sig[0] == 'B' && sig[1] == 'Z') { - return ARCHIVE_BZIP2; - } - - // XZ: 0xFD 0x37 0x7A 0x58 0x5A 0x00 - if (sig[0] == 0xFD && sig[1] == 0x37 && sig[2] == 0x7A && - sig[3] == 0x58 && sig[4] == 0x5A && sig[5] == 0x00) { - return ARCHIVE_XZ; - } - - // 7z: 37 7A BC AF 27 1C - if (sig[0] == 0x37 && sig[1] == 0x7A && sig[2] == 0xBC && - sig[3] == 0xAF && sig[4] == 0x27 && sig[5] == 0x1C) { - return ARCHIVE_7Z; - } - - // RAR: Rar!\x1a\x07 (RAR 4.x) or Rar!\x1a\x07\x01\x00 (RAR 5.x) - if (sig[0] == 'R' && sig[1] == 'a' && sig[2] == 'r' && sig[3] == '!' && - sig[4] == 0x1a && sig[5] == 0x07) { - return ARCHIVE_RAR; - } - - // TAR (ustar format): "ustar" at offset 257 - // Need to read more data for TAR detection - f = fopen(file_path, "rb"); - if (f) { - char ustar[6] = {0}; - fseek(f, 257, SEEK_SET); - if (fread(ustar, 1, 5, f) == 5) { - if (strncmp(ustar, "ustar", 5) == 0) { - fclose(f); - return ARCHIVE_TAR; - } - } - fclose(f); - } - - // ZSTD: 0x28 0xB5 0x2F 0xFD - if (sig[0] == 0x28 && sig[1] == 0xB5 && sig[2] == 0x2F && sig[3] == 0xFD) { - return ARCHIVE_ZSTD; - } - - return ARCHIVE_UNKNOWN; -} - -// Get archive type name -const char* get_archive_type_name(ArchiveType type) { - switch (type) { - case ARCHIVE_ZIP: return "ZIP"; - case ARCHIVE_TAR: return "TAR"; - case ARCHIVE_GZIP: return "GZIP/TAR.GZ"; - case ARCHIVE_BZIP2: return "BZIP2/TAR.BZ2"; - case ARCHIVE_XZ: return "XZ/TAR.XZ"; - case ARCHIVE_7Z: return "7-Zip"; - case ARCHIVE_RAR: return "RAR"; - case ARCHIVE_ZSTD: return "ZSTD/TAR.ZSTD"; - default: return "Unknown"; - } -} +// Detect / type-name / is_supported_archive moved to archive_extractor_detect.c +// (kept pure to allow host-side unit tests). // Extract archive using libarchive (supports multiple formats) int extract_archive_libarchive(const char* archive_path, const char* output_dir, @@ -185,10 +133,13 @@ int extract_archive_libarchive(const char* archive_path, const char* output_dir, return -3; } - // Use minimal options to avoid POSIX functions not available on 3DS + // Hardening: prevent zip-slip, symlink attacks, and absolute-path writes. + // ARCHIVE_EXTRACT_TIME is preserved so timestamps are restored. archive_write_disk_set_options(ext, ARCHIVE_EXTRACT_TIME | - ARCHIVE_EXTRACT_SECURE_NODOTDOT); + ARCHIVE_EXTRACT_SECURE_NODOTDOT | + ARCHIVE_EXTRACT_SECURE_SYMLINKS | + ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS); // Don't use standard lookup - causes issues with getpwnam/getgrnam on 3DS // archive_write_disk_set_standard_lookup(ext); @@ -264,9 +215,3 @@ int extract_archive_libarchive(const char* archive_path, const char* output_dir, return cancelled ? -4 : file_count; } - -// Check if file is a supported archive -bool is_supported_archive(const char* file_path) { - ArchiveType type = detect_archive_type(file_path); - return type != ARCHIVE_UNKNOWN; -} diff --git a/source/archive_extractor_detect.c b/source/archive_extractor_detect.c new file mode 100644 index 0000000..c4b4a59 --- /dev/null +++ b/source/archive_extractor_detect.c @@ -0,0 +1,98 @@ +// Pure archive detection (magic-byte sniffing). No libarchive, no 3ds.h +// dependency — host-testable. + +#include "archive_extractor.h" + +#include +#include + +ArchiveType detect_archive_type(const char* file_path) { + if (file_path == NULL) { + return ARCHIVE_UNKNOWN; + } + + FILE* f = fopen(file_path, "rb"); + if (!f) { + return ARCHIVE_UNKNOWN; + } + + unsigned char sig[16] = {0}; + size_t got = fread(sig, 1, sizeof(sig), f); + + if (got < 4) { + fclose(f); + return ARCHIVE_UNKNOWN; + } + + // ZIP: PK\x03\x04 or PK\x05\x06 (empty zip). + if (sig[0] == 'P' && sig[1] == 'K' && (sig[2] == 0x03 || sig[2] == 0x05)) { + fclose(f); + return ARCHIVE_ZIP; + } + // GZIP. + if (sig[0] == 0x1f && sig[1] == 0x8b) { + fclose(f); + return ARCHIVE_GZIP; + } + // BZIP2. + if (sig[0] == 'B' && sig[1] == 'Z') { + fclose(f); + return ARCHIVE_BZIP2; + } + // XZ. + if (got >= 6 && + sig[0] == 0xFD && sig[1] == 0x37 && sig[2] == 0x7A && + sig[3] == 0x58 && sig[4] == 0x5A && sig[5] == 0x00) { + fclose(f); + return ARCHIVE_XZ; + } + // 7z. + if (got >= 6 && + sig[0] == 0x37 && sig[1] == 0x7A && sig[2] == 0xBC && + sig[3] == 0xAF && sig[4] == 0x27 && sig[5] == 0x1C) { + fclose(f); + return ARCHIVE_7Z; + } + // RAR (4.x and 5.x both share the first 6 bytes). + if (got >= 6 && + sig[0] == 'R' && sig[1] == 'a' && sig[2] == 'r' && sig[3] == '!' && + sig[4] == 0x1a && sig[5] == 0x07) { + fclose(f); + return ARCHIVE_RAR; + } + // ZSTD. + if (sig[0] == 0x28 && sig[1] == 0xB5 && sig[2] == 0x2F && sig[3] == 0xFD) { + fclose(f); + return ARCHIVE_ZSTD; + } + + // TAR (ustar magic at offset 257). Reuse the open file handle. + char ustar[6] = {0}; + if (fseek(f, 257, SEEK_SET) == 0 && + fread(ustar, 1, 5, f) == 5 && + strncmp(ustar, "ustar", 5) == 0) { + fclose(f); + return ARCHIVE_TAR; + } + fclose(f); + + return ARCHIVE_UNKNOWN; +} + +const char* get_archive_type_name(ArchiveType type) { + switch (type) { + case ARCHIVE_ZIP: return "ZIP"; + case ARCHIVE_TAR: return "TAR"; + case ARCHIVE_GZIP: return "GZIP/TAR.GZ"; + case ARCHIVE_BZIP2: return "BZIP2/TAR.BZ2"; + case ARCHIVE_XZ: return "XZ/TAR.XZ"; + case ARCHIVE_7Z: return "7-Zip"; + case ARCHIVE_RAR: return "RAR"; + case ARCHIVE_ZSTD: return "ZSTD/TAR.ZSTD"; + default: return "Unknown"; + } +} + +bool is_supported_archive(const char* file_path) { + return detect_archive_type(file_path) != ARCHIVE_UNKNOWN; +} diff --git a/source/config.c b/source/config.c new file mode 100644 index 0000000..5de3258 --- /dev/null +++ b/source/config.c @@ -0,0 +1,254 @@ +#include "config.h" + +#include +#include +#include +#include +#include // strncasecmp (POSIX) + +#define DEFAULT_EXTRACT_PATH "sdmc:/extracted/" + +// --- Internal helpers ------------------------------------------------------ + +// Trim trailing CR/LF in place. +static void strip_eol(char* s, size_t* len_inout) { + size_t len = *len_inout; + while (len > 0 && (s[len - 1] == '\n' || s[len - 1] == '\r')) { + s[--len] = '\0'; + } + *len_inout = len; +} + +// Trim trailing ASCII whitespace in place. +static void rtrim(char* s) { + size_t len = strlen(s); + while (len > 0) { + unsigned char c = (unsigned char)s[len - 1]; + if (c == ' ' || c == '\t') { + s[--len] = '\0'; + } else { + break; + } + } +} + +// Skip a single UTF-8 BOM (EF BB BF) at the start of `s` if present. +static char* skip_bom(char* s) { + if ((unsigned char)s[0] == 0xEF && + (unsigned char)s[1] == 0xBB && + (unsigned char)s[2] == 0xBF) { + return s + 3; + } + return s; +} + +// Match `prefix` at the start of `s`. Returns pointer to value after the +// prefix, or NULL if not a match. +static const char* match_prefix(const char* s, const char* prefix) { + size_t pl = strlen(prefix); + if (strncmp(s, prefix, pl) == 0) { + return s + pl; + } + return NULL; +} + +// Parse a "true"/"false"/"1"/"0" boolean. Unknown values default to `dflt`. +static bool parse_bool(const char* v, bool dflt) { + if (v == NULL) return dflt; + if (strcmp(v, "true") == 0 || strcmp(v, "1") == 0) return true; + if (strcmp(v, "false") == 0 || strcmp(v, "0") == 0) return false; + return dflt; +} + +// Clamp helper. +static int clamp_int(int v, int lo, int hi) { + if (v < lo) return lo; + if (v > hi) return hi; + return v; +} + +// Split a URL line into URL and optional sha256 hex digest. +// Recognises the trailing ` sha256:<64hex>` token (case-insensitive prefix, +// hex digits required to be exactly 64). On match, the URL portion is +// truncated in `line` and `out_hash` is populated (lowercase). If no valid +// hash is found, `out_hash[0]` is left as NUL. +static void extract_sha256(char* line, char* out_hash) { + out_hash[0] = '\0'; + + // Find the last whitespace-separated token starting with sha256: + // We scan for " sha256:" (case-insensitive) so the URL itself can + // contain "sha256" without issue. + char* p = line; + char* match = NULL; + while (*p) { + if ((*p == ' ' || *p == '\t') && + (strncasecmp(p + 1, "sha256:", 7) == 0)) { + match = p; + } + p++; + } + if (match == NULL) { + return; + } + + const char* hex = match + 1 + 7; // skip the space and "sha256:" + // Validate that the remainder is exactly 64 hex chars (allow trailing ws). + size_t hex_len = 0; + while (hex[hex_len] != '\0' && hex[hex_len] != ' ' && hex[hex_len] != '\t') { + if (!isxdigit((unsigned char)hex[hex_len])) { + return; // not a clean hex token — leave URL untouched + } + hex_len++; + } + if (hex_len != SHA256_HEX_LEN) { + return; + } + + // Copy lowercase digest. + for (size_t i = 0; i < SHA256_HEX_LEN; i++) { + out_hash[i] = (char)tolower((unsigned char)hex[i]); + } + out_hash[SHA256_HEX_LEN] = '\0'; + + // Truncate the line at the match (drop trailing spaces too). + *match = '\0'; + rtrim(line); +} + +// --- Public API ------------------------------------------------------------ + +void config_apply_defaults(AppConfig* cfg) { + if (cfg == NULL) return; + memset(cfg, 0, sizeof(*cfg)); + strncpy(cfg->extract_path, DEFAULT_EXTRACT_PATH, MAX_PATH_LENGTH - 1); + cfg->extract_path[MAX_PATH_LENGTH - 1] = '\0'; + cfg->auto_retry = false; + cfg->max_retries = 3; + cfg->max_urls = MAX_URLS; + cfg->download_buffer_kb = 128; + cfg->connect_timeout_s = 30; + cfg->count = 0; +} + +int read_config_file(const char* file_path, AppConfig* cfg) { + if (cfg == NULL) return -1; + config_apply_defaults(cfg); + + FILE* file = fopen(file_path, "r"); + if (!file) { + return -1; + } + + char line[MAX_URL_LENGTH]; + bool first_line = true; + + while (fgets(line, sizeof(line), file) != NULL) { + // Strip CR/LF. + size_t len = strlen(line); + bool line_was_truncated = (len == sizeof(line) - 1 && line[len - 1] != '\n'); + strip_eol(line, &len); + + // If the line exceeded MAX_URL_LENGTH, drain the rest of it so + // subsequent fgets calls start at the next real line. We then keep + // the truncated content as the URL/setting (it will be too long to + // be useful, but won't overflow buffers). + if (line_was_truncated) { + int c; + while ((c = fgetc(file)) != EOF && c != '\n') { + /* drop */ + } + } + + // Strip a leading BOM on the first line only. + char* p = line; + if (first_line) { + p = skip_bom(p); + first_line = false; + } + + // Skip blank lines and comments. + if (*p == '\0' || *p == '#') { + continue; + } + + // Settings (key=value) — order independent. + const char* v; + if ((v = match_prefix(p, "extract_path=")) != NULL) { + strncpy(cfg->extract_path, v, MAX_PATH_LENGTH - 1); + cfg->extract_path[MAX_PATH_LENGTH - 1] = '\0'; + continue; + } + if ((v = match_prefix(p, "auto_retry=")) != NULL) { + cfg->auto_retry = parse_bool(v, false); + continue; + } + if ((v = match_prefix(p, "max_retries=")) != NULL) { + cfg->max_retries = clamp_int(atoi(v), 0, 10); + continue; + } + if ((v = match_prefix(p, "max_urls=")) != NULL) { + cfg->max_urls = clamp_int(atoi(v), 1, MAX_URLS); + continue; + } + if ((v = match_prefix(p, "download_buffer_kb=")) != NULL) { + cfg->download_buffer_kb = clamp_int(atoi(v), 4, 4096); + continue; + } + if ((v = match_prefix(p, "connect_timeout_s=")) != NULL) { + cfg->connect_timeout_s = clamp_int(atoi(v), 1, 600); + continue; + } + + // Otherwise it's a URL, possibly with ` sha256:HEX` suffix. + if (cfg->count < cfg->max_urls && cfg->count < MAX_URLS) { + DownloadItem* it = &cfg->items[cfg->count]; + extract_sha256(p, it->sha256_hex); + // Defensive copy (truncate, no overflow). + strncpy(it->url, p, MAX_URL_LENGTH - 1); + it->url[MAX_URL_LENGTH - 1] = '\0'; + it->state = DOWNLOAD_PENDING; + it->error_msg[0] = '\0'; + cfg->count++; + } + // Else: silently drop excess URLs (clamped by max_urls). + } + + fclose(file); + return cfg->count; +} + +bool create_example_config(const char* file_path) { + FILE* file = fopen(file_path, "w"); + if (!file) { + return false; + } + + fprintf(file, "# 3DS Archive Extractor - Configuration File\n"); + fprintf(file, "# Lines starting with # are comments\n"); + fprintf(file, "#\n"); + fprintf(file, "# Settings:\n"); + fprintf(file, "extract_path=sdmc:/extracted/\n"); + fprintf(file, "auto_retry=true\n"); + fprintf(file, "max_retries=3\n"); + fprintf(file, "#\n"); + fprintf(file, "# Optional limits (defaults shown):\n"); + fprintf(file, "# max_urls=100\n"); + fprintf(file, "# download_buffer_kb=128\n"); + fprintf(file, "# connect_timeout_s=30\n"); + fprintf(file, "#\n"); + fprintf(file, "# Add your URLs below (one per line):\n"); + fprintf(file, "# Example:\n"); + fprintf(file, "# https://example.com/file.zip\n"); + fprintf(file, "# https://example.com/file.zip sha256:<64-hex-digits>\n"); + fprintf(file, "# https://drive.google.com/file/d/FILE_ID/view\n"); + fprintf(file, "#\n"); + fprintf(file, "# Supported formats:\n"); + fprintf(file, "# ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, TAR.ZSTD\n"); + fprintf(file, "# 7Z, RAR, GZIP, BZIP2, XZ, ZSTD\n"); + fprintf(file, "#\n"); + fprintf(file, "# Add your URLs here:\n"); + fprintf(file, "\n"); + + fclose(file); + return true; +} diff --git a/source/download.c b/source/download.c new file mode 100644 index 0000000..69ff56f --- /dev/null +++ b/source/download.c @@ -0,0 +1,184 @@ +#include "download.h" + +#include +#include +#include +#include +#include +#include +#include <3ds.h> +#include + +#include "gdrive.h" +#include "gui.h" + +#define TEMP_DIR "sdmc:/3ds/zip-extractor/tmp" + +typedef struct { + FILE* file; + u64 downloaded; + u64 total; + bool resume; + // For server-200-when-resuming detection + bool first_chunk; +} DownloadData; + +// curl write callback. If we asked to resume but the server replied with +// 200 (full content), reset the file before writing the first chunk. +static size_t write_callback(void* contents, size_t size, size_t nmemb, void* userp) { + size_t realsize = size * nmemb; + DownloadData* data = (DownloadData*)userp; + + if (data->first_chunk && data->resume) { + // Will be reset elsewhere if needed; here we just record we've started. + data->first_chunk = false; + } + + size_t written = fwrite(contents, 1, realsize, data->file); + data->downloaded += written; + return written; +} + +// Progress + cancel-detection callback. +static int progress_callback(void* clientp, curl_off_t dltotal, curl_off_t dlnow, + curl_off_t ultotal, curl_off_t ulnow) { + (void)dlnow; (void)ultotal; (void)ulnow; + DownloadData* data = (DownloadData*)clientp; + if (dltotal > 0) { + data->total = dltotal; + } + + hidScanInput(); + if (hidKeysDown() & KEY_B) { + return 1; // abort + } + return 0; +} + +void download_make_temp_path(char* out, size_t out_size) { + if (out == NULL || out_size == 0) return; + mkdir("sdmc:/3ds", 0777); + mkdir("sdmc:/3ds/zip-extractor", 0777); + mkdir(TEMP_DIR, 0777); + + u64 ts = osGetTime(); + // libctru does not expose a real PID; use a counter + osGetTime to create + // a path that is unique per-run. + static unsigned int counter = 0; + counter++; + snprintf(out, out_size, "%s/run_%llu_%u.part", + TEMP_DIR, (unsigned long long)ts, counter); +} + +void download_cleanup_orphans(void) { + DIR* d = opendir(TEMP_DIR); + if (!d) return; + struct dirent* e; + char path[512]; + while ((e = readdir(d)) != NULL) { + // Remove any file ending in ".part" left from previous runs. + size_t n = strlen(e->d_name); + if (n > 5 && strcmp(e->d_name + n - 5, ".part") == 0) { + snprintf(path, sizeof(path), "%s/%s", TEMP_DIR, e->d_name); + remove(path); + } + } + closedir(d); +} + +Result download_file(const AppConfig* cfg, + const char* url, const char* output_path, + bool* cancelled, int current, int total) { + CURL* curl; + CURLcode res; + DownloadData data = {0}; + *cancelled = false; + data.first_chunk = true; + + long buffer_size = (long)(cfg ? cfg->download_buffer_kb : 128) * 1024L; + long connect_timeout = (long)(cfg ? cfg->connect_timeout_s : 30); + if (buffer_size < 4096) buffer_size = 4096; + + // Check if a partial file exists (for resume). + FILE* check_file = fopen(output_path, "rb"); + if (check_file) { + fseek(check_file, 0, SEEK_END); + long sz = ftell(check_file); + fclose(check_file); + if (sz > 0) { + data.downloaded = (u64)sz; + data.resume = true; + } + } + + data.file = fopen(output_path, data.resume ? "ab" : "wb"); + if (!data.file) { + return -1; + } + + curl = curl_easy_init(); + if (!curl) { + fclose(data.file); + return -1; + } + + char converted_url[512]; + convert_gdrive_url(url, converted_url, sizeof(converted_url)); + + curl_easy_setopt(curl, CURLOPT_URL, converted_url); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data); + curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L); + curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, progress_callback); + curl_easy_setopt(curl, CURLOPT_XFERINFODATA, &data); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, buffer_size); + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, connect_timeout); + // SSL verification disabled because the 3DS lacks a modern certificate + // store. Documented trade-off (see SECURITY.md). + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); + curl_easy_setopt(curl, CURLOPT_USERAGENT, "3DS-Zip-Extractor/1.0"); + + if (data.resume && data.downloaded > 0) { + curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, (curl_off_t)data.downloaded); + } + + gui_draw_download(current, total, converted_url, data.downloaded, data.total); + res = curl_easy_perform(curl); + + // If we asked to resume but got 200 (full content), restart from scratch. + if (res == CURLE_OK && data.resume) { + long http_code = 0; + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code); + if (http_code == 200) { + // Server ignored Range; close, truncate, retry. + fclose(data.file); + data.file = fopen(output_path, "wb"); + data.downloaded = 0; + data.resume = false; + if (!data.file) { + curl_easy_cleanup(curl); + return -1; + } + curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, (curl_off_t)0); + res = curl_easy_perform(curl); + } + } + + if (res == CURLE_OK) { + gui_draw_download(current, total, converted_url, data.downloaded, data.total); + } + + curl_easy_cleanup(curl); + fclose(data.file); + + if (res == CURLE_ABORTED_BY_CALLBACK) { + *cancelled = true; + return -2; + } + if (res != CURLE_OK) { + return -1; + } + return 0; +} diff --git a/source/file_browser.c b/source/file_browser.c new file mode 100644 index 0000000..8373e8b --- /dev/null +++ b/source/file_browser.c @@ -0,0 +1,133 @@ +#include "file_browser.h" + +#include +#include +#include +#include <3ds.h> +#include + +#include "gui.h" + +void init_file_browser(FileBrowser* browser, const char* start_path) { + strncpy(browser->current_path, start_path, MAX_PATH_LENGTH - 1); + browser->current_path[MAX_PATH_LENGTH - 1] = '\0'; + browser->count = 0; + browser->selected = 0; +} + +int load_directory(FileBrowser* browser) { + DIR* dir = opendir(browser->current_path); + if (!dir) { + return -1; + } + + browser->count = 0; + + // Add parent directory entry if not at root + if (strcmp(browser->current_path, "sdmc:/") != 0) { + strncpy(browser->entries[browser->count].name, "..", sizeof(browser->entries[0].name) - 1); + browser->entries[browser->count].name[sizeof(browser->entries[0].name) - 1] = '\0'; + browser->entries[browser->count].is_directory = true; + browser->count++; + } + + struct dirent* entry; + while ((entry = readdir(dir)) != NULL && browser->count < MAX_DIR_ENTRIES) { + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) { + continue; + } + strncpy(browser->entries[browser->count].name, entry->d_name, + sizeof(browser->entries[0].name) - 1); + browser->entries[browser->count].name[sizeof(browser->entries[0].name) - 1] = '\0'; + browser->entries[browser->count].is_directory = (entry->d_type == DT_DIR); + browser->count++; + } + closedir(dir); + + // Sort: directories first, then alphabetically. + for (int i = 0; i < browser->count - 1; i++) { + for (int j = i + 1; j < browser->count; j++) { + bool swap = false; + if (browser->entries[i].is_directory && !browser->entries[j].is_directory) { + continue; + } + if (!browser->entries[i].is_directory && browser->entries[j].is_directory) { + swap = true; + } else if (strcmp(browser->entries[i].name, browser->entries[j].name) > 0) { + swap = true; + } + if (swap) { + DirEntry tmp = browser->entries[i]; + browser->entries[i] = browser->entries[j]; + browser->entries[j] = tmp; + } + } + } + + browser->selected = 0; + return browser->count; +} + +void display_file_browser(FileBrowser* browser, int scroll_offset) { + C3D_FrameBegin(C3D_FRAME_SYNCDRAW); + + C2D_TargetClear(g_top, COLOR_BG); + C2D_SceneBegin(g_top); + + C2D_TextBufClear(g_textBuf); + C2D_Text text; + float y = 5.0f; + + C2D_DrawRectSolid(0, 0, 0.5f, 400, 22, COLOR_ACCENT); + C2D_TextParse(&text, g_textBuf, " File Browser - Select Path"); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 5.0f, 3.0f, 0.5f, 0.5f, 0.5f, C2D_Color32(0, 0, 0, 255)); + y = 25.0f; + + char pathBuf[64]; + snprintf(pathBuf, sizeof(pathBuf), "%.50s", browser->current_path); + C2D_TextParse(&text, g_textBuf, pathBuf); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); + y += 15.0f; + + C2D_DrawRectSolid(10, y, 0.5f, 380, 1, COLOR_ACCENT); + y += 5.0f; + + int visible_lines = 10; + int start = scroll_offset; + int end = start + visible_lines; + if (end > browser->count) end = browser->count; + + for (int i = start; i < end; i++) { + char lineBuf[64]; + const char* type_marker = browser->entries[i].is_directory ? "/" : ""; + snprintf(lineBuf, sizeof(lineBuf), "%.45s%s", browser->entries[i].name, type_marker); + + if (i == browser->selected) { + C2D_DrawRectSolid(10, y - 1, 0.5f, 380, 14, COLOR_ACCENT); + C2D_TextParse(&text, g_textBuf, lineBuf); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 15.0f, y, 0.5f, 0.38f, 0.38f, C2D_Color32(0, 0, 0, 255)); + } else { + C2D_TextParse(&text, g_textBuf, lineBuf); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 15.0f, y, 0.5f, 0.38f, 0.38f, COLOR_TEXT); + } + y += 14.0f; + } + + y = 200.0f; + C2D_TextParse(&text, g_textBuf, "D-Pad: Navigate A: Enter Y: Select"); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PROGRESS); + y += 12.0f; + C2D_TextParse(&text, g_textBuf, "B: Cancel X: New Folder"); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_TEXT); + + C2D_TargetClear(g_bottom, COLOR_BG); + C2D_SceneBegin(g_bottom); + + C3D_FrameEnd(0); +} diff --git a/source/gdrive.c b/source/gdrive.c new file mode 100644 index 0000000..33ded15 --- /dev/null +++ b/source/gdrive.c @@ -0,0 +1,73 @@ +#include "gdrive.h" + +#include +#include + +// Maximum size of a Google Drive file ID buffer used internally. +#define GDRIVE_MAX_ID_LEN 256 + +void convert_gdrive_url(const char* input_url, char* output_url, size_t output_size) { + if (output_url == NULL || output_size == 0) { + return; + } + output_url[0] = '\0'; + if (input_url == NULL) { + return; + } + + // Pass-through if not a Google Drive URL. + if (strstr(input_url, "drive.google.com") == NULL) { + strncpy(output_url, input_url, output_size - 1); + output_url[output_size - 1] = '\0'; + return; + } + + // Folder URLs are not downloadable as a single file. + if (strstr(input_url, "/folders/") != NULL) { + // Pass through unchanged; caller may emit a warning. + strncpy(output_url, input_url, output_size - 1); + output_url[output_size - 1] = '\0'; + return; + } + + char file_id[GDRIVE_MAX_ID_LEN]; + file_id[0] = '\0'; + + // Format: https://drive.google.com/file/d/FILE_ID/view + const char* id_start = strstr(input_url, "/file/d/"); + if (id_start != NULL) { + id_start += 8; // skip "/file/d/" + const char* id_end = strchr(id_start, '/'); + size_t id_len = id_end ? (size_t)(id_end - id_start) : strlen(id_start); + if (id_len > 0 && id_len < sizeof(file_id)) { + memcpy(file_id, id_start, id_len); + file_id[id_len] = '\0'; + } + } + + // Format: ...?id=FILE_ID&... or ...?id=FILE_ID at end + if (file_id[0] == '\0') { + id_start = strstr(input_url, "id="); + if (id_start != NULL) { + id_start += 3; // skip "id=" + const char* id_end = strpbrk(id_start, "&/ \t\n\r"); + size_t id_len = id_end ? (size_t)(id_end - id_start) : strlen(id_start); + if (id_len > 0 && id_len < sizeof(file_id)) { + memcpy(file_id, id_start, id_len); + file_id[id_len] = '\0'; + } + } + } + + if (file_id[0] != '\0') { + // confirm=t bypasses the virus-scan warning for files >100MB. + snprintf(output_url, output_size, + "https://drive.google.com/uc?export=download&id=%s&confirm=t", + file_id); + return; + } + + // Couldn't parse — fall back to the original URL. + strncpy(output_url, input_url, output_size - 1); + output_url[output_size - 1] = '\0'; +} diff --git a/source/integrity.c b/source/integrity.c new file mode 100644 index 0000000..e324c82 --- /dev/null +++ b/source/integrity.c @@ -0,0 +1,209 @@ +#include "integrity.h" + +#include +#include +#include + +// We support two backends: +// - 3DS / target build: mbedtls (already in portlibs) +// - host build: small public-domain SHA-256 implementation, used only by +// the unit tests so they don't need an extra dependency. +// +// The mbedtls path is preferred whenever available because it's the same +// implementation that ships with the 3DS firmware and curl on-device. + +#if defined(HOST_BUILD) || !defined(__3DS__) + +// ---- Pure-C SHA-256 (host) ----------------------------------------------- +// Compact reference implementation. Not constant-time, but integrity +// verification of downloaded archives is not a side-channel scenario. + +#include + +typedef struct { + uint32_t state[8]; + uint64_t bitcount; + uint8_t buffer[64]; +} sha256_ctx; + +static const uint32_t K256[64] = { + 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5, + 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174, + 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da, + 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967, + 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85, + 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070, + 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3, + 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +}; + +#define ROTR(x,n) (((x) >> (n)) | ((x) << (32-(n)))) + +static void sha256_transform(sha256_ctx* c, const uint8_t* d) { + uint32_t w[64], a, b, ce, dd, e, f, g, h, t1, t2; + for (int i = 0; i < 16; i++) { + w[i] = ((uint32_t)d[i*4] << 24) | ((uint32_t)d[i*4+1] << 16) | + ((uint32_t)d[i*4+2] << 8) | (uint32_t)d[i*4+3]; + } + for (int i = 16; i < 64; i++) { + uint32_t s0 = ROTR(w[i-15],7) ^ ROTR(w[i-15],18) ^ (w[i-15] >> 3); + uint32_t s1 = ROTR(w[i-2],17) ^ ROTR(w[i-2],19) ^ (w[i-2] >> 10); + w[i] = w[i-16] + s0 + w[i-7] + s1; + } + a = c->state[0]; b = c->state[1]; ce = c->state[2]; dd = c->state[3]; + e = c->state[4]; f = c->state[5]; g = c->state[6]; h = c->state[7]; + for (int i = 0; i < 64; i++) { + uint32_t S1 = ROTR(e,6) ^ ROTR(e,11) ^ ROTR(e,25); + uint32_t ch = (e & f) ^ (~e & g); + t1 = h + S1 + ch + K256[i] + w[i]; + uint32_t S0 = ROTR(a,2) ^ ROTR(a,13) ^ ROTR(a,22); + uint32_t mj = (a & b) ^ (a & ce) ^ (b & ce); + t2 = S0 + mj; + h = g; g = f; f = e; e = dd + t1; + dd = ce; ce = b; b = a; a = t1 + t2; + } + c->state[0] += a; c->state[1] += b; c->state[2] += ce; c->state[3] += dd; + c->state[4] += e; c->state[5] += f; c->state[6] += g; c->state[7] += h; +} + +static void sha256_init(sha256_ctx* c) { + c->state[0] = 0x6a09e667; c->state[1] = 0xbb67ae85; + c->state[2] = 0x3c6ef372; c->state[3] = 0xa54ff53a; + c->state[4] = 0x510e527f; c->state[5] = 0x9b05688c; + c->state[6] = 0x1f83d9ab; c->state[7] = 0x5be0cd19; + c->bitcount = 0; +} + +static void sha256_update(sha256_ctx* c, const uint8_t* data, size_t len) { + size_t buf_used = (size_t)((c->bitcount >> 3) & 63); + c->bitcount += (uint64_t)len * 8; + if (buf_used) { + size_t need = 64 - buf_used; + if (len < need) { + memcpy(c->buffer + buf_used, data, len); + return; + } + memcpy(c->buffer + buf_used, data, need); + sha256_transform(c, c->buffer); + data += need; len -= need; + } + while (len >= 64) { + sha256_transform(c, data); + data += 64; len -= 64; + } + if (len) memcpy(c->buffer, data, len); +} + +static void sha256_final(sha256_ctx* c, uint8_t out[32]) { + size_t buf_used = (size_t)((c->bitcount >> 3) & 63); + c->buffer[buf_used++] = 0x80; + if (buf_used > 56) { + memset(c->buffer + buf_used, 0, 64 - buf_used); + sha256_transform(c, c->buffer); + buf_used = 0; + } + memset(c->buffer + buf_used, 0, 56 - buf_used); + uint64_t bc = c->bitcount; + for (int i = 0; i < 8; i++) { + c->buffer[63 - i] = (uint8_t)(bc & 0xff); + bc >>= 8; + } + sha256_transform(c, c->buffer); + for (int i = 0; i < 8; i++) { + out[i*4] = (uint8_t)(c->state[i] >> 24); + out[i*4+1] = (uint8_t)(c->state[i] >> 16); + out[i*4+2] = (uint8_t)(c->state[i] >> 8); + out[i*4+3] = (uint8_t)(c->state[i]); + } +} + +static void compute_sha256(const void* data, size_t len, uint8_t out[32]) { + sha256_ctx c; + sha256_init(&c); + sha256_update(&c, (const uint8_t*)data, len); + sha256_final(&c, out); +} + +#else +// ---- mbedtls (target) ---------------------------------------------------- +#include + +static void compute_sha256(const void* data, size_t len, unsigned char out[32]) { + mbedtls_sha256_context ctx; + mbedtls_sha256_init(&ctx); + // 3rd arg: 0 = SHA-256, 1 = SHA-224. Compatible across mbedtls 2.x/3.x. + mbedtls_sha256_starts_ret(&ctx, 0); + mbedtls_sha256_update_ret(&ctx, (const unsigned char*)data, len); + mbedtls_sha256_finish_ret(&ctx, out); + mbedtls_sha256_free(&ctx); +} +#endif + +static void to_hex(const unsigned char* digest, char* out_hex) { + static const char* hex = "0123456789abcdef"; + for (int i = 0; i < SHA256_DIGEST_BYTES; i++) { + out_hex[i*2] = hex[digest[i] >> 4]; + out_hex[i*2 + 1] = hex[digest[i] & 0x0f]; + } + out_hex[SHA256_DIGEST_BYTES * 2] = '\0'; +} + +void sha256_hex(const void* data, size_t len, char* out_hex) { + if (out_hex == NULL) return; + unsigned char digest[SHA256_DIGEST_BYTES]; + compute_sha256(data ? data : "", data ? len : 0, digest); + to_hex(digest, out_hex); +} + +bool sha256_hex_file(const char* path, char* out_hex) { + if (out_hex == NULL) return false; + out_hex[0] = '\0'; + if (path == NULL) return false; + + FILE* f = fopen(path, "rb"); + if (!f) return false; + +#if defined(HOST_BUILD) || !defined(__3DS__) + sha256_ctx ctx; + sha256_init(&ctx); + unsigned char buf[8192]; + size_t n; + while ((n = fread(buf, 1, sizeof(buf), f)) > 0) { + sha256_update(&ctx, buf, n); + } + fclose(f); + unsigned char digest[SHA256_DIGEST_BYTES]; + sha256_final(&ctx, digest); +#else + mbedtls_sha256_context ctx; + mbedtls_sha256_init(&ctx); + mbedtls_sha256_starts_ret(&ctx, 0); + unsigned char buf[8192]; + size_t n; + while ((n = fread(buf, 1, sizeof(buf), f)) > 0) { + mbedtls_sha256_update_ret(&ctx, buf, n); + } + fclose(f); + unsigned char digest[SHA256_DIGEST_BYTES]; + mbedtls_sha256_finish_ret(&ctx, digest); + mbedtls_sha256_free(&ctx); +#endif + to_hex(digest, out_hex); + return true; +} + +bool verify_integrity(const char* path, const char* expected_hex) { + if (path == NULL || expected_hex == NULL || expected_hex[0] == '\0') { + return false; + } + char actual[SHA256_DIGEST_BYTES * 2 + 1]; + if (!sha256_hex_file(path, actual)) { + return false; + } + // Case-insensitive compare against the expected digest. + for (int i = 0; i < SHA256_DIGEST_BYTES * 2; i++) { + char e = (char)tolower((unsigned char)expected_hex[i]); + if (actual[i] != e) return false; + } + return expected_hex[SHA256_DIGEST_BYTES * 2] == '\0'; +} diff --git a/source/led.c b/source/led.c new file mode 100644 index 0000000..ec92d5b --- /dev/null +++ b/source/led.c @@ -0,0 +1,25 @@ +#include "led.h" + +// Internal: select an LED notification pattern. +// 0 = off, 1 = green (download + extraction completed), +// 2 = pink/red (download completed, before extraction). +// +// NOTE: actual MCUHWC LED control is not yet wired up here; this preserves +// the historical behaviour from main.c (the previous implementation also +// did not drive the MCU directly). The function signature is kept stable +// so a real implementation can drop in without further refactoring. +static void set_led_notification(unsigned char pattern) { + (void)pattern; +} + +void led_notification_green(void) { + set_led_notification(1); +} + +void led_notification_pink(void) { + set_led_notification(2); +} + +void led_notification_off(void) { + set_led_notification(0); +} diff --git a/source/main.c b/source/main.c index 77111c5..d096f73 100644 --- a/source/main.c +++ b/source/main.c @@ -2,849 +2,74 @@ #include #include #include -#include #include #include <3ds.h> #include #include #include -#include -#include "gui.h" + #include "archive_extractor.h" +#include "config.h" +#include "download.h" +#include "file_browser.h" +#include "gui.h" +#include "integrity.h" +#include "led.h" +#include "queue.h" -#define DOWNLOAD_BUFFER_SIZE (128 * 1024) // 128KB buffer -#define DEFAULT_EXTRACT_PATH "sdmc:/extracted/" -#define TEMP_DOWNLOAD_PATH "sdmc:/temp_download.tmp" #define CONFIG_FILE_PATH "sdmc:/3ds/zip-extractor/config.txt" -#define MAX_URLS 50 -#define MAX_URL_LENGTH 512 -#define MAX_PATH_LENGTH 256 -#define MAX_DIR_ENTRIES 100 -// Global GUI context for hybrid rendering +// Global GUI context for hybrid rendering. static GUI g_gui = {0}; static bool g_use_gui = false; -// Sleep mode handling -static bool enable_sleep_mode() { - // Disable sleep mode to continue downloading in background - APT_SetAppCpuTimeLimit(30); // 30% CPU limit for background - return true; -} - -static void restore_sleep_mode() { - APT_SetAppCpuTimeLimit(0); // Restore normal CPU usage -} - -// LED notification functions -static void set_led_notification(u8 pattern) { - // Use MCUHWC for LED control - // Pattern: 0 = off, 1-7 = various blink patterns - u8 led_state = 0; - - if (pattern == 1) { - // Green notification pattern - led_state = 1; // Blink pattern - } else if (pattern == 2) { - // Pink/Red notification pattern - led_state = 2; // Different blink pattern - } - - // Note: Actual LED control requires mcuHwcInit() and specific API calls - // This is a simplified version -} -static void led_notification_green() { - // Green LED: Download + Extraction completed - set_led_notification(1); -} - -static void led_notification_pink() { - // Pink/Red LED: Download completed (before extraction) - set_led_notification(2); -} - -static void led_notification_off() { - // Turn off LED notification - set_led_notification(0); -} - - -// Download states for queue management -typedef enum { - DOWNLOAD_PENDING, - DOWNLOAD_IN_PROGRESS, - DOWNLOAD_COMPLETED, - DOWNLOAD_FAILED, - DOWNLOAD_SKIPPED -} DownloadState; - -// Directory entry for file browser -typedef struct { - char name[256]; - bool is_directory; -} DirEntry; - -typedef struct { - DirEntry entries[MAX_DIR_ENTRIES]; - int count; - int selected; - char current_path[MAX_PATH_LENGTH]; -} FileBrowser; - -typedef struct { - FILE* file; - u64 downloaded; - u64 total; - bool resume; -} DownloadData; - +// Tracks the currently-extracting archive for the GUI callback. typedef struct { u64 extracted_files; - u64 current_size; char current_file[256]; } ExtractData; - -typedef struct { - char url[MAX_URL_LENGTH]; - DownloadState state; - char error_msg[128]; -} DownloadItem; - -typedef struct { - DownloadItem items[MAX_URLS]; - int count; - char extract_path[MAX_PATH_LENGTH]; - bool auto_retry; - int max_retries; -} DownloadQueue; - static ExtractData extract_data = {0}; -// Initialize file browser -static void init_file_browser(FileBrowser* browser, const char* start_path) { - strncpy(browser->current_path, start_path, MAX_PATH_LENGTH - 1); - browser->current_path[MAX_PATH_LENGTH - 1] = '\0'; - browser->count = 0; - browser->selected = 0; -} - -// Load directory contents into browser -static int load_directory(FileBrowser* browser) { - DIR* dir = opendir(browser->current_path); - if (!dir) { - return -1; - } - - browser->count = 0; - - // Add parent directory entry if not at root - if (strcmp(browser->current_path, "sdmc:/") != 0) { - strncpy(browser->entries[browser->count].name, "..", sizeof(browser->entries[0].name) - 1); - browser->entries[browser->count].is_directory = true; - browser->count++; - } - - struct dirent* entry; - while ((entry = readdir(dir)) != NULL && browser->count < MAX_DIR_ENTRIES) { - // Skip . and .. - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) { - continue; - } - - strncpy(browser->entries[browser->count].name, entry->d_name, sizeof(browser->entries[0].name) - 1); - browser->entries[browser->count].name[sizeof(browser->entries[0].name) - 1] = '\0'; - browser->entries[browser->count].is_directory = (entry->d_type == DT_DIR); - browser->count++; - } - - closedir(dir); - - // Sort: directories first, then alphabetically - for (int i = 0; i < browser->count - 1; i++) { - for (int j = i + 1; j < browser->count; j++) { - bool swap = false; - - // Directories before files - if (browser->entries[i].is_directory && !browser->entries[j].is_directory) { - continue; - } - if (!browser->entries[i].is_directory && browser->entries[j].is_directory) { - swap = true; - } - // Alphabetical within same type - else if (strcmp(browser->entries[i].name, browser->entries[j].name) > 0) { - swap = true; - } - - if (swap) { - DirEntry temp = browser->entries[i]; - browser->entries[i] = browser->entries[j]; - browser->entries[j] = temp; - } - } - } - - browser->selected = 0; - return browser->count; -} - -// Display file browser using GUI -static void display_file_browser(FileBrowser* browser, int scroll_offset) { - C3D_FrameBegin(C3D_FRAME_SYNCDRAW); - - C2D_TargetClear(g_top, COLOR_BG); - C2D_SceneBegin(g_top); - - C2D_TextBufClear(g_textBuf); - C2D_Text text; - float y = 5.0f; - - // Title bar - C2D_DrawRectSolid(0, 0, 0.5f, 400, 22, COLOR_ACCENT); - C2D_TextParse(&text, g_textBuf, " File Browser - Select Path"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 5.0f, 3.0f, 0.5f, 0.5f, 0.5f, C2D_Color32(0, 0, 0, 255)); - y = 25.0f; - - // Current path - char pathBuf[64]; - snprintf(pathBuf, sizeof(pathBuf), "%.50s", browser->current_path); - C2D_TextParse(&text, g_textBuf, pathBuf); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 15.0f; - - C2D_DrawRectSolid(10, y, 0.5f, 380, 1, COLOR_ACCENT); - y += 5.0f; - - // File list - int visible_lines = 10; - int start = scroll_offset; - int end = start + visible_lines; - if (end > browser->count) end = browser->count; - - for (int i = start; i < end; i++) { - char lineBuf[64]; - const char* type_marker = browser->entries[i].is_directory ? "/" : ""; - snprintf(lineBuf, sizeof(lineBuf), "%.45s%s", browser->entries[i].name, type_marker); - - if (i == browser->selected) { - C2D_DrawRectSolid(10, y - 1, 0.5f, 380, 14, COLOR_ACCENT); - C2D_TextParse(&text, g_textBuf, lineBuf); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 15.0f, y, 0.5f, 0.38f, 0.38f, C2D_Color32(0, 0, 0, 255)); - } else { - C2D_TextParse(&text, g_textBuf, lineBuf); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 15.0f, y, 0.5f, 0.38f, 0.38f, COLOR_TEXT); - } - y += 14.0f; - } - - // Controls - y = 200.0f; - C2D_TextParse(&text, g_textBuf, "D-Pad: Navigate A: Enter Y: Select"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PROGRESS); - y += 12.0f; - C2D_TextParse(&text, g_textBuf, "B: Cancel X: New Folder"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_TEXT); - - C2D_TargetClear(g_bottom, COLOR_BG); - C2D_SceneBegin(g_bottom); - - C3D_FrameEnd(0); -} - -// Forward declaration -static void convert_gdrive_url(const char* input_url, char* output_url, size_t output_size); - -/* -// Handle Google Drive large file confirmation -// NOTE: This function is currently not used but kept for future reference -static bool handle_gdrive_confirmation(const char* url, char* final_url, size_t final_url_size) { - // Check if URL is already a direct download link - if (strstr(url, "drive.google.com/uc") != NULL) { - strncpy(final_url, url, final_url_size - 1); - final_url[final_url_size - 1] = '\0'; - return true; - } - - // For large files, Google Drive requires a confirmation token - // We need to make a request and check for the confirmation page - CURL* curl = curl_easy_init(); - if (!curl) { - return false; - } - - // First, try the normal conversion - char converted[512]; - convert_gdrive_url(url, converted, sizeof(converted)); - - // For files >100MB, we need to extract the confirm token - // This is a simplified approach - in reality, you'd need to: - // 1. Make initial request - // 2. Parse HTML for confirm token - // 3. Make second request with token - - // For now, we'll just add a warning parameter that helps with some cases - if (strstr(converted, "?") != NULL) { - snprintf(final_url, final_url_size, "%s&confirm=t", converted); - } else { - snprintf(final_url, final_url_size, "%s?confirm=t", converted); - } - - curl_easy_cleanup(curl); - return true; -} -*/ - -// Function to read configuration file with settings and URLs -static int read_config_file(const char* file_path, DownloadQueue* queue) { - FILE* file = fopen(file_path, "r"); - if (!file) { - return -1; - } - - // Set defaults - strncpy(queue->extract_path, DEFAULT_EXTRACT_PATH, MAX_PATH_LENGTH - 1); - queue->extract_path[MAX_PATH_LENGTH - 1] = '\0'; - queue->auto_retry = false; - queue->max_retries = 3; - queue->count = 0; - - char line[MAX_URL_LENGTH]; - - while (fgets(line, sizeof(line), file) != NULL) { - // Remove trailing newline and carriage return - size_t len = strlen(line); - while (len > 0 && (line[len-1] == '\n' || line[len-1] == '\r')) { - line[len-1] = '\0'; - len--; - } - - // Skip empty lines and comments - if (len == 0 || line[0] == '#') { - continue; - } - - // Check for settings (format: setting=value) - if (strstr(line, "extract_path=") == line) { - strncpy(queue->extract_path, line + 13, MAX_PATH_LENGTH - 1); - queue->extract_path[MAX_PATH_LENGTH - 1] = '\0'; - continue; - } - - if (strstr(line, "auto_retry=") == line) { - queue->auto_retry = (strcmp(line + 11, "true") == 0 || strcmp(line + 11, "1") == 0); - continue; - } - - if (strstr(line, "max_retries=") == line) { - queue->max_retries = atoi(line + 12); - if (queue->max_retries < 0) queue->max_retries = 0; - if (queue->max_retries > 10) queue->max_retries = 10; - continue; - } - - // Otherwise, treat as URL - if (queue->count < MAX_URLS) { - strncpy(queue->items[queue->count].url, line, MAX_URL_LENGTH - 1); - queue->items[queue->count].url[MAX_URL_LENGTH - 1] = '\0'; - queue->items[queue->count].state = DOWNLOAD_PENDING; - queue->items[queue->count].error_msg[0] = '\0'; - queue->count++; - } - } - - fclose(file); - return queue->count; -} - -// Create example config file if it doesn't exist -static bool create_example_config(const char* file_path) { - FILE* file = fopen(file_path, "w"); - if (!file) { - return false; - } +// --- Sleep mode ----------------------------------------------------------- - // Write example configuration - fprintf(file, "# 3DS Archive Extractor - Configuration File\n"); - fprintf(file, "# Lines starting with # are comments\n"); - fprintf(file, "#\n"); - fprintf(file, "# Settings:\n"); - fprintf(file, "extract_path=sdmc:/extracted/\n"); - fprintf(file, "auto_retry=true\n"); - fprintf(file, "max_retries=3\n"); - fprintf(file, "#\n"); - fprintf(file, "# Add your URLs below (one per line):\n"); - fprintf(file, "# Example:\n"); - fprintf(file, "# https://example.com/file.zip\n"); - fprintf(file, "# https://drive.google.com/file/d/FILE_ID/view\n"); - fprintf(file, "#\n"); - fprintf(file, "# Supported formats:\n"); - fprintf(file, "# ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, TAR.ZSTD\n"); - fprintf(file, "# 7Z, RAR, GZIP, BZIP2, XZ, ZSTD\n"); - fprintf(file, "#\n"); - fprintf(file, "# Add your URLs here:\n"); - fprintf(file, "\n"); - - fclose(file); - return true; +static void enable_sleep_mode(void) { + APT_SetAppCpuTimeLimit(30); // 30% CPU for background activity. } -// Display queue status using GUI -static void display_queue_status(DownloadQueue* queue, int current_page) { - C3D_FrameBegin(C3D_FRAME_SYNCDRAW); - - C2D_TargetClear(g_top, COLOR_BG); - C2D_SceneBegin(g_top); - - C2D_TextBufClear(g_textBuf); - C2D_Text text; - float y = 5.0f; - - // Title bar - C2D_DrawRectSolid(0, 0, 0.5f, 400, 22, COLOR_ACCENT); - C2D_TextParse(&text, g_textBuf, " Queue Status"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 5.0f, 3.0f, 0.5f, 0.5f, 0.5f, C2D_Color32(0, 0, 0, 255)); - y = 25.0f; - - int items_per_page = 10; - int start = current_page * items_per_page; - int end = start + items_per_page; - if (end > queue->count) end = queue->count; - - char buf[64]; - snprintf(buf, sizeof(buf), "Showing %d-%d of %d", start + 1, end, queue->count); - C2D_TextParse(&text, g_textBuf, buf); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 15.0f; - - for (int i = start; i < end; i++) { - const char* state_str = "?"; - u32 state_color = COLOR_TEXT; - - switch (queue->items[i].state) { - case DOWNLOAD_PENDING: state_str = "[ ]"; state_color = COLOR_PENDING; break; - case DOWNLOAD_IN_PROGRESS: state_str = "[>]"; state_color = COLOR_PROGRESS; break; - case DOWNLOAD_COMPLETED: state_str = "[OK]"; state_color = COLOR_SUCCESS; break; - case DOWNLOAD_FAILED: state_str = "[X]"; state_color = COLOR_ERROR; break; - case DOWNLOAD_SKIPPED: state_str = "[-]"; state_color = COLOR_PENDING; break; - } - - snprintf(buf, sizeof(buf), "%s %.42s", state_str, queue->items[i].url); - C2D_TextParse(&text, g_textBuf, buf); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.33f, 0.33f, state_color); - y += 13.0f; - } - - int total_pages = (queue->count + items_per_page - 1) / items_per_page; - if (total_pages == 0) total_pages = 1; - - y = 195.0f; - snprintf(buf, sizeof(buf), "Page %d/%d", current_page + 1, total_pages); - C2D_TextParse(&text, g_textBuf, buf); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.38f, 0.38f, COLOR_TEXT); - y += 14.0f; - - C2D_TextParse(&text, g_textBuf, "L/R: Page Y: Skip failed B: Back"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PROGRESS); - - C2D_TargetClear(g_bottom, COLOR_BG); - C2D_SceneBegin(g_bottom); - - C3D_FrameEnd(0); +static void restore_sleep_mode(void) { + APT_SetAppCpuTimeLimit(0); } -// Function to convert Google Drive URLs to direct download links -static void convert_gdrive_url(const char* input_url, char* output_url, size_t output_size) { - // Check if it's a Google Drive URL - if (strstr(input_url, "drive.google.com") != NULL) { - // Extract file ID from various Google Drive URL formats - char* id_start = NULL; - - // Format: https://drive.google.com/file/d/FILE_ID/view - if ((id_start = strstr(input_url, "/file/d/")) != NULL) { - id_start += 8; // Skip "/file/d/" - char* id_end = strchr(id_start, '/'); - if (id_end) { - size_t id_len = id_end - id_start; - char file_id_buf[256]; - strncpy(file_id_buf, id_start, id_len); - file_id_buf[id_len] = '\0'; - // Use confirm parameter for large files (>100MB) to bypass virus scan warning - snprintf(output_url, output_size, - "https://drive.google.com/uc?export=download&id=%s&confirm=t", - file_id_buf); - return; - } - } - - // Format: https://drive.google.com/open?id=FILE_ID - // Format: https://drive.google.com/uc?id=FILE_ID - if ((id_start = strstr(input_url, "id=")) != NULL) { - id_start += 3; // Skip "id=" - char* id_end = strpbrk(id_start, "&/ \t\n\r"); - if (id_end) { - size_t id_len = id_end - id_start; - char file_id_buf[256]; - if (id_len > 0 && id_len < sizeof(file_id_buf)) { - strncpy(file_id_buf, id_start, id_len); - file_id_buf[id_len] = '\0'; - snprintf(output_url, output_size, - "https://drive.google.com/uc?export=download&id=%s&confirm=t", - file_id_buf); - return; - } - } else { - // ID is at the end of URL - snprintf(output_url, output_size, - "https://drive.google.com/uc?export=download&id=%s&confirm=t", - id_start); - return; - } - } - - // Format: https://drive.google.com/drive/folders/... (not supported for download) - if (strstr(input_url, "/folders/") != NULL) { - printf("Warning: Folder URLs are not supported, only direct file links\n"); - } - } - - // Not a Google Drive URL or couldn't parse, use original - strncpy(output_url, input_url, output_size - 1); - output_url[output_size - 1] = '\0'; -} - -// Callback for writing downloaded data -static size_t write_callback(void* contents, size_t size, size_t nmemb, void* userp) { - size_t realsize = size * nmemb; - DownloadData* data = (DownloadData*)userp; - - size_t written = fwrite(contents, 1, realsize, data->file); - data->downloaded += written; - - return written; -} - -// Callback for download progress -static int progress_callback(void* clientp, curl_off_t dltotal, curl_off_t dlnow, - curl_off_t ultotal, curl_off_t ulnow) { - DownloadData* data = (DownloadData*)clientp; - - if (dltotal > 0) { - data->total = dltotal; - } - - // Check if user wants to cancel - hidScanInput(); - u32 kDown = hidKeysDown(); - if (kDown & KEY_B) { - return 1; // Abort download - } - - return 0; -} +// --- Extraction adapter --------------------------------------------------- -// Update download progress display using GUI (like fast-uninstall) -static void update_download_display(int current, int total, DownloadData* data, const char* url) { - gui_draw_download(current, total, url, data->downloaded, data->total); -} - -// Download file with resume support -static Result download_file(const char* url, const char* output_path, bool* cancelled, int current, int total) { - CURL* curl; - CURLcode res; - DownloadData data = {0}; - *cancelled = false; - - // Check if partial file exists - FILE* check_file = fopen(output_path, "rb"); - if (check_file) { - fseek(check_file, 0, SEEK_END); - data.downloaded = ftell(check_file); - fclose(check_file); - data.resume = true; - } - - // Open file for appending or writing - data.file = fopen(output_path, data.resume ? "ab" : "wb"); - if (!data.file) { - printf("Failed to open output file\n"); - return -1; - } - - curl = curl_easy_init(); - if (!curl) { - fclose(data.file); - return -1; - } - - // Convert Google Drive URLs if needed - char converted_url[512]; - convert_gdrive_url(url, converted_url, sizeof(converted_url)); - - curl_easy_setopt(curl, CURLOPT_URL, converted_url); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data); - curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L); - curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, progress_callback); - curl_easy_setopt(curl, CURLOPT_XFERINFODATA, &data); - curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); - curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, DOWNLOAD_BUFFER_SIZE); - // Note: SSL verification is disabled due to certificate store limitations on 3DS - // This is a known trade-off for 3DS homebrew applications - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); - curl_easy_setopt(curl, CURLOPT_USERAGENT, "3DS-Zip-Extractor/1.0"); - - // Resume support - if (data.resume && data.downloaded > 0) { - curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, (curl_off_t)data.downloaded); - } - - // Initial display update - update_download_display(current, total, &data, converted_url); - - // Perform download with periodic display updates - res = curl_easy_perform(curl); - - // Final display update - if (res == CURLE_OK) { - update_download_display(current, total, &data, converted_url); - } - - curl_easy_cleanup(curl); - fclose(data.file); - - if (res == CURLE_ABORTED_BY_CALLBACK) { - *cancelled = true; - return -2; - } - - if (res != CURLE_OK) { - printf("Download failed: %s\n", curl_easy_strerror(res)); - return -1; - } - - return 0; -} - -// Simple ZIP structures (minimal implementation) -#pragma pack(1) -typedef struct { - u32 signature; // 0x04034b50 - u16 version; - u16 flags; - u16 compression; // 0=store, 8=deflate - u16 mod_time; - u16 mod_date; - u32 crc32; - u32 compressed_size; - u32 uncompressed_size; - u16 filename_len; - u16 extra_len; -} ZipLocalHeader; - -typedef struct { - u32 signature; // 0x02014b50 - u16 version_made; - u16 version_needed; - u16 flags; - u16 compression; - u16 mod_time; - u16 mod_date; - u32 crc32; - u32 compressed_size; - u32 uncompressed_size; - u16 filename_len; - u16 extra_len; - u16 comment_len; - u16 disk_start; - u16 internal_attr; - u32 external_attr; - u32 local_header_offset; -} ZipCentralHeader; -#pragma pack() - -#define ZIP_LOCAL_SIGNATURE 0x04034b50 -#define ZIP_CENTRAL_SIGNATURE 0x02014b50 -#define ZIP_END_SIGNATURE 0x06054b50 - -// Create directory recursively -static int mkdir_recursive(const char* path) { - char tmp[512]; - char* p = NULL; - size_t len; - - snprintf(tmp, sizeof(tmp), "%s", path); - len = strlen(tmp); - if (tmp[len - 1] == '/') - tmp[len - 1] = 0; - - for (p = tmp + 1; *p; p++) { - if (*p == '/') { - *p = 0; - mkdir(tmp, 0777); - *p = '/'; - } - } - return mkdir(tmp, 0777); -} - -// Extract single file from ZIP -static int extract_zip_file(FILE* zip, ZipLocalHeader* header, const char* output_dir) { - char filename[512]; - char fullpath[1024]; - - // Read filename - if (header->filename_len >= sizeof(filename)) { - printf("Filename too long\n"); - fseek(zip, header->filename_len + header->extra_len, SEEK_CUR); - return -1; - } - - fread(filename, 1, header->filename_len, zip); - filename[header->filename_len] = '\0'; - - // Skip extra field - fseek(zip, header->extra_len, SEEK_CUR); - - // Build full output path - snprintf(fullpath, sizeof(fullpath), "%s%s", output_dir, filename); - - // Check if it's a directory - if (filename[header->filename_len - 1] == '/') { - mkdir_recursive(fullpath); - fseek(zip, header->compressed_size, SEEK_CUR); - return 0; - } - - // Create parent directories - char dirpath[1024]; - snprintf(dirpath, sizeof(dirpath), "%s", fullpath); - char* last_slash = strrchr(dirpath, '/'); - if (last_slash) { - *last_slash = '\0'; - mkdir_recursive(dirpath); - } - - // Open output file - FILE* out = fopen(fullpath, "wb"); - if (!out) { - printf("Cannot create: %s\n", fullpath); - fseek(zip, header->compressed_size, SEEK_CUR); - return -1; - } - - // Extract based on compression method - if (header->compression == 0) { - // Stored (no compression) - char buffer[8192]; - u32 remaining = header->uncompressed_size; - while (remaining > 0) { - size_t to_read = (remaining < sizeof(buffer)) ? remaining : sizeof(buffer); - size_t read = fread(buffer, 1, to_read, zip); - if (read == 0) break; - fwrite(buffer, 1, read, out); - remaining -= read; - } - } else if (header->compression == 8) { - // Deflate compression - z_stream stream = {0}; - if (inflateInit2(&stream, -MAX_WBITS) != Z_OK) { - printf("inflateInit2 failed\n"); - fclose(out); - return -1; - } - - unsigned char in_buffer[8192]; - unsigned char out_buffer[8192]; - u32 remaining = header->compressed_size; - - while (remaining > 0) { - size_t to_read = (remaining < sizeof(in_buffer)) ? remaining : sizeof(in_buffer); - stream.avail_in = fread(in_buffer, 1, to_read, zip); - if (stream.avail_in == 0) break; - - stream.next_in = in_buffer; - remaining -= stream.avail_in; - - do { - stream.avail_out = sizeof(out_buffer); - stream.next_out = out_buffer; - - int ret = inflate(&stream, Z_NO_FLUSH); - if (ret == Z_STREAM_ERROR || ret == Z_DATA_ERROR || ret == Z_MEM_ERROR) { - printf("inflate error: %d\n", ret); - inflateEnd(&stream); - fclose(out); - return -1; - } - - size_t have = sizeof(out_buffer) - stream.avail_out; - fwrite(out_buffer, 1, have, out); - - } while (stream.avail_out == 0); - } - - inflateEnd(&stream); - } else { - printf("Unsupported compression: %d\n", header->compression); - fclose(out); - fseek(zip, header->compressed_size, SEEK_CUR); - return -1; - } - - fclose(out); - return 0; -} - -// Callback for extraction progress static bool extraction_progress_callback(int file_count, const char* current_file, void* user_data) { - int* params = (int*)user_data; - int current = params[0]; - int total = params[1]; - + (void)user_data; extract_data.extracted_files = file_count; strncpy(extract_data.current_file, current_file, sizeof(extract_data.current_file) - 1); extract_data.current_file[sizeof(extract_data.current_file) - 1] = '\0'; - // Update display using GUI gui_draw_extraction(current_file, file_count); - // Check for cancel hidScanInput(); if (hidKeysDown() & KEY_B) { - return true; // Cancel extraction + return true; // cancel } - - return false; // Continue extraction + return false; } -// Extract archive with progress tracking (multi-format support) -static Result extract_archive(const char* archive_path, const char* output_dir, int current, int total) { +// Extract `archive_path` into `output_dir`. Returns 0 on success, -1 on +// hard error, -2 if cancelled by user. +static Result extract_archive(const char* archive_path, const char* output_dir) { extract_data.extracted_files = 0; - extract_data.current_size = 0; extract_data.current_file[0] = '\0'; - // Detect archive type ArchiveType type = detect_archive_type(archive_path); const char* type_name = get_archive_type_name(type); - // Show extraction starting char msg[64]; snprintf(msg, sizeof(msg), "Extracting %s archive...", type_name); gui_draw_status("Archive Extractor for 3DS", msg); - // Check if format is supported if (type == ARCHIVE_UNKNOWN) { gui_draw_error("Unsupported Format", "ZIP, TAR, 7Z, RAR supported"); while (aptMainLoop()) { @@ -855,16 +80,11 @@ static Result extract_archive(const char* archive_path, const char* output_dir, return -1; } - // Extract using libarchive - int params[2] = {current, total}; int file_count = extract_archive_libarchive(archive_path, output_dir, - extraction_progress_callback, params); - - // Remove temp archive file + extraction_progress_callback, NULL); remove(archive_path); if (file_count == -4) { - // Cancelled by user gui_draw_status("Archive Extractor for 3DS", "Extraction cancelled!"); while (aptMainLoop()) { hidScanInput(); @@ -873,12 +93,10 @@ static Result extract_archive(const char* archive_path, const char* output_dir, } return -2; } - if (file_count < 0) { - // Error during extraction - char errMsg[64]; - snprintf(errMsg, sizeof(errMsg), "Extraction error: %d", file_count); - gui_draw_error("Extraction Failed", errMsg); + char err_msg[64]; + snprintf(err_msg, sizeof(err_msg), "Extraction error: %d", file_count); + gui_draw_error("Extraction Failed", err_msg); while (aptMainLoop()) { hidScanInput(); if (hidKeysDown() & KEY_A) break; @@ -887,44 +105,32 @@ static Result extract_archive(const char* archive_path, const char* output_dir, return -1; } - // Success - Trigger green LED notification led_notification_green(); - gui_draw_status("Extraction Complete!", "Press A to continue"); while (aptMainLoop()) { hidScanInput(); if (hidKeysDown() & KEY_A) break; } - return 0; } +// --- Main ----------------------------------------------------------------- + int main(int argc, char** argv) { - // Initialize graphics (like fast-uninstall) - gfxInitDefault(); + (void)argc; (void)argv; - // Initialize GUI with citro2d + gfxInitDefault(); g_use_gui = gui_init(&g_gui); - if (!g_use_gui) { - // Cannot continue without GUI gfxExit(); return 1; } - // Show initializing screen gui_draw_status("Archive Extractor for 3DS", "Initializing..."); - - // Initialize PTMU for LED notifications ptmuInit(); - - // Enable sleep mode support (continue downloads in background) enable_sleep_mode(); gui_draw_status("Archive Extractor for 3DS", "Initializing network..."); - - // Initialize networking - Result ret = 0; u32* socMemory = (u32*)memalign(0x1000, 0x100000); if (!socMemory) { gui_draw_error("Error", "Failed to allocate socket memory!"); @@ -937,9 +143,8 @@ int main(int argc, char** argv) { gfxExit(); return 1; } - - ret = socInit(socMemory, 0x100000); - if (ret != 0) { + + if (socInit(socMemory, 0x100000) != 0) { gui_draw_error("Network Error", "Failed to initialize network!"); while (aptMainLoop()) { hidScanInput(); @@ -951,17 +156,11 @@ int main(int argc, char** argv) { gfxExit(); return 1; } - - gui_draw_status("Archive Extractor for 3DS", "Initializing downloads..."); - // Initialize curl + gui_draw_status("Archive Extractor for 3DS", "Initializing downloads..."); curl_global_init(CURL_GLOBAL_ALL); - - const char* extract_path = DEFAULT_EXTRACT_PATH; - gui_draw_status("Archive Extractor for 3DS", "Initializing..."); - - // Allocate queue on heap to avoid stack overflow (structure is very large) + // Heap-allocated to keep large structures off the small 3DS stack. DownloadQueue* queue = (DownloadQueue*)calloc(1, sizeof(DownloadQueue)); if (!queue) { gui_draw_error("Memory Error", "Failed to allocate queue!"); @@ -979,106 +178,38 @@ int main(int argc, char** argv) { } gui_draw_status("Archive Extractor for 3DS", "Loading..."); - - // Create config directory if it doesn't exist mkdir("sdmc:/3ds", 0777); mkdir("sdmc:/3ds/zip-extractor", 0777); - // Ignore errors - directories may already exist - // Try to read configuration file - int url_count = read_config_file(CONFIG_FILE_PATH, queue); + // Sweep up any orphaned `.part` files from previous runs. + download_cleanup_orphans(); + int url_count = read_config_file(CONFIG_FILE_PATH, queue); - // If config doesn't exist, create an example one and EXIT + // First-run experience: create an example config and ask user to edit. if (url_count < 0) { gui_draw_status("Archive Extractor for 3DS", "Config not found! Creating..."); - - // Small delay so user sees the message for (int i = 0; i < 30; i++) gspWaitForVBlank(); if (create_example_config(CONFIG_FILE_PATH)) { - // Config created successfully - show message and force exit while (aptMainLoop()) { hidScanInput(); if (hidKeysDown() & KEY_START) break; - - // Show clear instructions - C3D_FrameBegin(C3D_FRAME_SYNCDRAW); - C2D_TargetClear(g_top, COLOR_BG); - C2D_SceneBegin(g_top); - C2D_TextBufClear(g_textBuf); - C2D_Text text; - float y = 10.0f; - - C2D_TextParse(&text, g_textBuf, "Config File Created!"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.6f, 0.6f, COLOR_SUCCESS); - y += 30; - - C2D_DrawRectSolid(10, y, 0.5f, 380, 2, COLOR_ACCENT); - y += 15; - - C2D_TextParse(&text, g_textBuf, "Location:"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.4f, 0.4f, COLOR_TEXT); - y += 16; - - C2D_TextParse(&text, g_textBuf, " sdmc:/3ds/zip-extractor/config.txt"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 25; - - C2D_TextParse(&text, g_textBuf, "What to do:"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.4f, 0.4f, COLOR_TEXT); - y += 16; - - C2D_TextParse(&text, g_textBuf, " 1. Close this app (START)"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 14; - - C2D_TextParse(&text, g_textBuf, " 2. Edit config.txt on your SD card"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 14; - - C2D_TextParse(&text, g_textBuf, " 3. Add your download URLs"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 14; - - C2D_TextParse(&text, g_textBuf, " 4. Restart the app"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); - y += 30; - - C2D_TextParse(&text, g_textBuf, "Press START to exit"); - C2D_TextOptimize(&text); - C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.45f, 0.45f, COLOR_PROGRESS); - - C2D_TargetClear(g_bottom, COLOR_BG); - C2D_SceneBegin(g_bottom); - C3D_FrameEnd(0); + gui_draw_status("Config Created", + "Edit sdmc:/3ds/zip-extractor/config.txt and restart."); } } else { - // Cannot create config - show error while (aptMainLoop()) { hidScanInput(); if (hidKeysDown() & KEY_START) break; gui_draw_error("Cannot Create Config", "SD card read-only? Press START"); } } - - // Force exit - user must edit config and restart goto exit_loop; } - if (url_count > 0) { - extract_path = queue->extract_path; - } - - // Show main menu immediately after loading config + const char* extract_path = (url_count > 0) ? queue->extract_path : "sdmc:/extracted/"; + gui_draw_main_menu(url_count, CONFIG_FILE_PATH, extract_path, queue->auto_retry, queue->max_retries); @@ -1088,45 +219,34 @@ int main(int argc, char** argv) { bool show_browser = false; int queue_page = 0; - // Allocate browser on heap to avoid stack overflow FileBrowser* browser = (FileBrowser*)calloc(1, sizeof(FileBrowser)); if (!browser) { gui_draw_error("Warning", "File browser disabled (memory)"); - // Continue without browser } - int browser_scroll = 0; - - // Main loop - MUST render every frame like fast-uninstall + while (aptMainLoop()) { hidScanInput(); u32 kDown = hidKeysDown(); - - if (kDown & KEY_START) { - break; - } - - // Render current screen state + + if (kDown & KEY_START) break; + + // Default render: main menu. if (!started && !show_queue && !show_browser) { - // Main menu - render every frame gui_draw_main_menu(url_count, CONFIG_FILE_PATH, extract_path, - queue->auto_retry, queue->max_retries); + queue->auto_retry, queue->max_retries); } - // File browser - if (show_browser) { - // TODO: implement gui_draw_file_browser + // ----- File browser ----- + if (show_browser && browser) { if (kDown & KEY_UP) { - if (browser && browser->selected > 0) { + if (browser->selected > 0) { browser->selected--; - if (browser->selected < browser_scroll) { - browser_scroll = browser->selected; - } + if (browser->selected < browser_scroll) browser_scroll = browser->selected; } } - if (kDown & KEY_DOWN) { - if (browser && browser->selected < browser->count - 1) { + if (browser->selected < browser->count - 1) { browser->selected++; if (browser->selected >= browser_scroll + 14) { browser_scroll = browser->selected - 13; @@ -1134,34 +254,28 @@ int main(int argc, char** argv) { } display_file_browser(browser, browser_scroll); } - if (kDown & KEY_A) { - // Enter directory or select if (browser->entries[browser->selected].is_directory) { if (strcmp(browser->entries[browser->selected].name, "..") == 0) { - // Go up one directory char* last_slash = strrchr(browser->current_path, '/'); if (last_slash != NULL && last_slash != browser->current_path) { *last_slash = '\0'; - // Handle case where we're at sdmc:/something - if (strncmp(browser->current_path, "sdmc:", 5) == 0 && strlen(browser->current_path) == 5) { + if (strncmp(browser->current_path, "sdmc:", 5) == 0 + && strlen(browser->current_path) == 5) { strcat(browser->current_path, "/"); } } } else { - // Enter subdirectory - use safe string operations size_t path_len = strlen(browser->current_path); size_t name_len = strlen(browser->entries[browser->selected].name); - - // Check if we have enough space if (path_len + name_len + 2 < MAX_PATH_LENGTH) { if (browser->current_path[path_len - 1] != '/') { - browser->current_path[path_len] = '/'; - browser->current_path[path_len + 1] = '\0'; - path_len++; + browser->current_path[path_len++] = '/'; + browser->current_path[path_len] = '\0'; } - strncat(browser->current_path, browser->entries[browser->selected].name, - MAX_PATH_LENGTH - path_len - 1); + strncat(browser->current_path, + browser->entries[browser->selected].name, + MAX_PATH_LENGTH - path_len - 1); } } load_directory(browser); @@ -1169,63 +283,21 @@ int main(int argc, char** argv) { display_file_browser(browser, browser_scroll); } } - if (kDown & KEY_Y) { - // Use current directory strncpy(queue->extract_path, browser->current_path, MAX_PATH_LENGTH - 1); queue->extract_path[MAX_PATH_LENGTH - 1] = '\0'; - // Ensure path ends with / if (queue->extract_path[strlen(queue->extract_path) - 1] != '/') { strcat(queue->extract_path, "/"); } extract_path = queue->extract_path; show_browser = false; - - // Return to main menu - consoleClear(); - printf("\x1b[2;1HArchive Extractor for 3DS"); - printf("\x1b[4;1H================================"); - printf("\x1b[6;1HLoaded %d URL(s) from config", url_count); - printf("\x1b[8;1HConfig file:"); - printf("\x1b[9;1H %s", CONFIG_FILE_PATH); - printf("\x1b[11;1HExtract path:"); - printf("\x1b[12;1H %s", extract_path); - if (queue->auto_retry) { - printf("\x1b[13;1HAuto-retry: ON (max %d)", queue->max_retries); - } - printf("\x1b[14;1HSupports: ZIP, TAR, 7Z, RAR"); - printf("\x1b[15;1H TAR.GZ, TAR.BZ2, etc."); - printf("\x1b[17;1HPress A to start downloads"); - printf("\x1b[18;1HPress X to view queue"); - printf("\x1b[19;1HPress SELECT to browse path"); - printf("\x1b[20;1HPress START to exit"); } - if (kDown & KEY_B) { show_browser = false; - - // Return to main menu - consoleClear(); - printf("\x1b[2;1HArchive Extractor for 3DS"); - printf("\x1b[4;1H================================"); - printf("\x1b[6;1HLoaded %d URL(s) from config", url_count); - printf("\x1b[8;1HConfig file:"); - printf("\x1b[9;1H %s", CONFIG_FILE_PATH); - printf("\x1b[11;1HExtract path:"); - printf("\x1b[12;1H %s", extract_path); - if (queue->auto_retry) { - printf("\x1b[13;1HAuto-retry: ON (max %d)", queue->max_retries); - } - printf("\x1b[14;1HSupports: ZIP, TAR, 7Z, RAR"); - printf("\x1b[15;1H TAR.GZ, TAR.BZ2, etc."); - printf("\x1b[17;1HPress A to start downloads"); - printf("\x1b[18;1HPress X to view queue"); - printf("\x1b[19;1HPress SELECT to browse path"); - printf("\x1b[20;1HPress START to exit"); } } - - // Show file browser + + // Open file browser. if ((kDown & KEY_SELECT) && url_count > 0 && !started && !show_queue && !show_browser && browser) { show_browser = true; init_file_browser(browser, "sdmc:/"); @@ -1233,23 +305,19 @@ int main(int argc, char** argv) { browser_scroll = 0; display_file_browser(browser, browser_scroll); } - - // Queue navigation + + // ----- Queue view ----- if (show_queue) { int total_pages = (url_count + 11) / 12; - if ((kDown & KEY_R) && queue_page < total_pages - 1) { queue_page++; display_queue_status(queue, queue_page); } - if ((kDown & KEY_L) && queue_page > 0) { queue_page--; display_queue_status(queue, queue_page); } - if (kDown & KEY_Y) { - // Skip all failed downloads for (int i = 0; i < url_count; i++) { if (queue->items[i].state == DOWNLOAD_FAILED) { queue->items[i].state = DOWNLOAD_SKIPPED; @@ -1257,180 +325,116 @@ int main(int argc, char** argv) { } display_queue_status(queue, queue_page); } - if (kDown & KEY_B) { show_queue = false; queue_page = 0; - consoleClear(); - printf("\x1b[2;1HArchive Extractor for 3DS"); - printf("\x1b[4;1H================================"); - printf("\x1b[6;1HLoaded %d URL(s) from config", url_count); - printf("\x1b[8;1HConfig file:"); - printf("\x1b[9;1H %s", CONFIG_FILE_PATH); - printf("\x1b[11;1HExtract path:"); - printf("\x1b[12;1H %s", extract_path); - if (queue->auto_retry) { - printf("\x1b[13;1HAuto-retry: ON (max %d)", queue->max_retries); - } - printf("\x1b[14;1HSupports: ZIP, TAR, 7Z, RAR"); - printf("\x1b[15;1H TAR.GZ, TAR.BZ2, etc."); - printf("\x1b[17;1HPress A to start downloads"); - printf("\x1b[18;1HPress X to view queue"); - printf("\x1b[19;1HPress START to exit"); } - if ((kDown & KEY_A) && !started) { show_queue = false; started = true; - // Continue to processing below } } - - // Show queue if ((kDown & KEY_X) && url_count > 0 && !started && !show_queue) { show_queue = true; queue_page = 0; display_queue_status(queue, queue_page); } - - // Start processing + + // ----- Start processing ----- if ((kDown & KEY_A) && url_count > 0 && !started && !show_queue) { started = true; } - + if (started) { - // Create extract directory mkdir(extract_path, 0777); - + int successful = 0; int failed = 0; int skipped = 0; u64 total_files_extracted = 0; - - // Process each URL in queue + for (int i = 0; i < url_count && !cancelled; i++) { - // Skip items that are skipped or already completed - if (queue->items[i].state == DOWNLOAD_SKIPPED) { - skipped++; - continue; - } - if (queue->items[i].state == DOWNLOAD_COMPLETED) { - successful++; - continue; - } - + if (queue->items[i].state == DOWNLOAD_SKIPPED) { skipped++; continue; } + if (queue->items[i].state == DOWNLOAD_COMPLETED) { successful++; continue; } + queue->items[i].state = DOWNLOAD_IN_PROGRESS; - int retries = 0; bool download_success = false; - + + // Per-URL temp path so concurrent runs / aborts don't collide. + char temp_path[160]; + download_make_temp_path(temp_path, sizeof(temp_path)); + do { - consoleClear(); - printf("\x1b[2;1HArchive Extractor for 3DS"); - printf("\x1b[4;1H================================"); - printf("\x1b[6;1HProcessing file %d of %d", i + 1, url_count); - if (retries > 0) { - printf("\x1b[7;1HRetry attempt %d/%d", retries, queue->max_retries); - } - printf("\x1b[9;1HStarting download..."); - - gfxFlushBuffers(); - gfxSwapBuffers(); - gspWaitForVBlank(); - - // Download file - Result download_result = download_file(queue->items[i].url, TEMP_DOWNLOAD_PATH, &cancelled, i + 1, url_count); - - if (cancelled) { - break; - } - - if (download_result == 0) { - // Download completed - Trigger pink LED notification + Result rc = download_file(queue, queue->items[i].url, temp_path, + &cancelled, i + 1, url_count); + if (cancelled) break; + + if (rc == 0) { led_notification_pink(); - // Extract archive - Result extract_result = extract_archive(TEMP_DOWNLOAD_PATH, extract_path, i + 1, url_count); - - if (extract_result == 0) { - queue->items[i].state = DOWNLOAD_COMPLETED; - successful++; - total_files_extracted += extract_data.extracted_files; - download_success = true; - } else if (extract_result == -2) { - cancelled = true; - break; + // Optional integrity check. + if (queue->items[i].sha256_hex[0] != '\0' && + !verify_integrity(temp_path, queue->items[i].sha256_hex)) { + strncpy(queue->items[i].error_msg, "SHA256 mismatch", + sizeof(queue->items[i].error_msg) - 1); + remove(temp_path); } else { - strncpy(queue->items[i].error_msg, "Extraction failed", sizeof(queue->items[i].error_msg) - 1); + Result er = extract_archive(temp_path, extract_path); + if (er == 0) { + queue->items[i].state = DOWNLOAD_COMPLETED; + successful++; + total_files_extracted += extract_data.extracted_files; + download_success = true; + } else if (er == -2) { + cancelled = true; + break; + } else { + strncpy(queue->items[i].error_msg, "Extraction failed", + sizeof(queue->items[i].error_msg) - 1); + } + remove(temp_path); } - - // Clean up temp file - remove(TEMP_DOWNLOAD_PATH); } else { - strncpy(queue->items[i].error_msg, "Download failed", sizeof(queue->items[i].error_msg) - 1); + strncpy(queue->items[i].error_msg, "Download failed", + sizeof(queue->items[i].error_msg) - 1); } - + if (!download_success && queue->auto_retry && retries < queue->max_retries) { retries++; - // Wait a bit before retry - svcSleepThread(2000000000LL); // 2 seconds + svcSleepThread(2000000000LL); // 2s before retry } else { break; } - } while (!download_success && retries <= queue->max_retries); - + if (!download_success && !cancelled) { queue->items[i].state = DOWNLOAD_FAILED; failed++; } } - - // Show summary - consoleClear(); - printf("\x1b[2;1HArchive Extractor for 3DS"); - printf("\x1b[4;1H================================"); - - if (cancelled) { - printf("\x1b[6;1HOperation cancelled!"); - } else { - printf("\x1b[6;1HAll downloads complete!"); - } - - printf("\x1b[8;1HSummary:"); - printf("\x1b[9;1H Successful: %d", successful); - printf("\x1b[10;1H Failed: %d", failed); - printf("\x1b[11;1H Skipped: %d", skipped); - printf("\x1b[12;1H Total files extracted: %llu", total_files_extracted); - printf("\x1b[14;1HOutput directory:"); - printf("\x1b[15;1H %s", extract_path); - - if (failed > 0) { - printf("\x1b[17;1HPress X to view failed items"); - printf("\x1b[18;1HPress A to retry failed"); - } - printf("\x1b[19;1HPress START to exit"); - + + // Summary screen. + char summary[160]; + snprintf(summary, sizeof(summary), + cancelled ? "Cancelled. OK %d, FAIL %d, SKIP %d, files %llu" + : "Done. OK %d, FAIL %d, SKIP %d, files %llu", + successful, failed, skipped, + (unsigned long long)total_files_extracted); + gui_draw_status("Archive Extractor for 3DS", summary); + started = false; - - // Wait for user input while (aptMainLoop()) { hidScanInput(); u32 kDown2 = hidKeysDown(); - - if (kDown2 & KEY_START) { - goto exit_loop; - } - + if (kDown2 & KEY_START) goto exit_loop; if ((kDown2 & KEY_X) && failed > 0) { show_queue = true; queue_page = 0; display_queue_status(queue, queue_page); break; } - if ((kDown2 & KEY_A) && failed > 0) { - // Reset failed items to pending and restart for (int i = 0; i < url_count; i++) { if (queue->items[i].state == DOWNLOAD_FAILED) { queue->items[i].state = DOWNLOAD_PENDING; @@ -1439,42 +443,31 @@ int main(int argc, char** argv) { started = true; break; } - gfxFlushBuffers(); gfxSwapBuffers(); gspWaitForVBlank(); } } - + gfxFlushBuffers(); gfxSwapBuffers(); gspWaitForVBlank(); } - + exit_loop: - - // Turn off LED notifications led_notification_off(); - - // Restore normal sleep mode restore_sleep_mode(); - // Free allocated memory - if (browser) { - free(browser); - } - if (queue) { - free(queue); - } + download_cleanup_orphans(); + + if (browser) free(browser); + if (queue) free(queue); curl_global_cleanup(); socExit(); free(socMemory); - - // Cleanup PTMU ptmuExit(); - gfxExit(); return 0; } diff --git a/source/queue.c b/source/queue.c new file mode 100644 index 0000000..3e9f6df --- /dev/null +++ b/source/queue.c @@ -0,0 +1,78 @@ +#include "queue.h" + +#include +#include +#include <3ds.h> +#include + +#include "gui.h" + +// Render the queue status screen. Called every frame while the queue view +// is active. Mirrors the original implementation that lived in main.c. +void display_queue_status(DownloadQueue* queue, int current_page) { + C3D_FrameBegin(C3D_FRAME_SYNCDRAW); + + C2D_TargetClear(g_top, COLOR_BG); + C2D_SceneBegin(g_top); + + C2D_TextBufClear(g_textBuf); + C2D_Text text; + float y = 5.0f; + + // Title bar + C2D_DrawRectSolid(0, 0, 0.5f, 400, 22, COLOR_ACCENT); + C2D_TextParse(&text, g_textBuf, " Queue Status"); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 5.0f, 3.0f, 0.5f, 0.5f, 0.5f, C2D_Color32(0, 0, 0, 255)); + y = 25.0f; + + int items_per_page = 10; + int start = current_page * items_per_page; + int end = start + items_per_page; + if (end > queue->count) end = queue->count; + + char buf[64]; + snprintf(buf, sizeof(buf), "Showing %d-%d of %d", start + 1, end, queue->count); + C2D_TextParse(&text, g_textBuf, buf); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PENDING); + y += 15.0f; + + for (int i = start; i < end; i++) { + const char* state_str = "?"; + u32 state_color = COLOR_TEXT; + + switch (queue->items[i].state) { + case DOWNLOAD_PENDING: state_str = "[ ]"; state_color = COLOR_PENDING; break; + case DOWNLOAD_IN_PROGRESS: state_str = "[>]"; state_color = COLOR_PROGRESS; break; + case DOWNLOAD_COMPLETED: state_str = "[OK]"; state_color = COLOR_SUCCESS; break; + case DOWNLOAD_FAILED: state_str = "[X]"; state_color = COLOR_ERROR; break; + case DOWNLOAD_SKIPPED: state_str = "[-]"; state_color = COLOR_PENDING; break; + } + + snprintf(buf, sizeof(buf), "%s %.42s", state_str, queue->items[i].url); + C2D_TextParse(&text, g_textBuf, buf); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.33f, 0.33f, state_color); + y += 13.0f; + } + + int total_pages = (queue->count + items_per_page - 1) / items_per_page; + if (total_pages == 0) total_pages = 1; + + y = 195.0f; + snprintf(buf, sizeof(buf), "Page %d/%d", current_page + 1, total_pages); + C2D_TextParse(&text, g_textBuf, buf); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.38f, 0.38f, COLOR_TEXT); + y += 14.0f; + + C2D_TextParse(&text, g_textBuf, "L/R: Page Y: Skip failed B: Back"); + C2D_TextOptimize(&text); + C2D_DrawText(&text, C2D_WithColor, 10.0f, y, 0.5f, 0.35f, 0.35f, COLOR_PROGRESS); + + C2D_TargetClear(g_bottom, COLOR_BG); + C2D_SceneBegin(g_bottom); + + C3D_FrameEnd(0); +} diff --git a/tests/3ds_stubs.h b/tests/3ds_stubs.h new file mode 100644 index 0000000..b97809b --- /dev/null +++ b/tests/3ds_stubs.h @@ -0,0 +1,22 @@ +// Minimal stand-ins for libctru types so pure modules can be built on a +// regular host PC for the unit-test suite. The corresponding C sources +// guard real `<3ds.h>` includes with `#ifndef HOST_BUILD`. +// +// Only the very small subset of types the pure modules need is provided +// here. Anything that depends on actual 3DS hardware (curl, citro2d, +// libarchive disk extraction, hidScanInput, ...) is NOT host-testable +// and is excluded from the host build. + +#ifndef THREE_DS_STUBS_H +#define THREE_DS_STUBS_H + +#include +#include + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int32_t Result; + +#endif // THREE_DS_STUBS_H diff --git a/tests/Makefile.host b/tests/Makefile.host new file mode 100644 index 0000000..510b36b --- /dev/null +++ b/tests/Makefile.host @@ -0,0 +1,88 @@ +#--------------------------------------------------------------------------------- +# Host build for 3ds-zip-extractor unit tests. +# +# These tests run on a normal Linux/macOS host (no devkitARM, no 3DS). +# Only the *pure* modules of the project (config, gdrive, integrity, +# archive_extractor:detect_archive_type) are linked here. UI / network +# / on-disk extraction code is excluded — that part is exercised on +# the real device. +#--------------------------------------------------------------------------------- + +CC ?= cc +CSTD ?= -std=c11 +CFLAGS ?= $(CSTD) -O0 -g -Wall -Wextra -Wno-unused-parameter \ + -DHOST_BUILD=1 \ + -I. -I../include +LDFLAGS ?= + +ASAN_FLAGS := -fsanitize=address,undefined -fno-omit-frame-pointer + +# Pure sources from the main project that we link into every test binary. +PROJECT_PURE := \ + ../source/config.c \ + ../source/gdrive.c \ + ../source/integrity.c + +# Unity vendor. +UNITY := unity.c + +# Test binaries. +TEST_GDRIVE := test_gdrive +TEST_CONFIG := test_config +TEST_ARCHIVE_DETECT := test_archive_detect +TEST_SHA256 := test_sha256 + +ALL_TESTS := $(TEST_GDRIVE) $(TEST_CONFIG) $(TEST_ARCHIVE_DETECT) $(TEST_SHA256) + +.PHONY: all test test-asan clean fixtures coverage help + +all: $(ALL_TESTS) + +help: + @echo "Targets:" + @echo " test - build and run all unit tests" + @echo " test-asan - same, with AddressSanitizer + UBSan" + @echo " coverage - generate gcov/lcov HTML report (needs lcov)" + @echo " clean - remove build artifacts" + +# Generic test rule — each test gets the full set of pure sources plus +# its own *.c file plus unity.c. +$(TEST_GDRIVE): test_gdrive.c $(UNITY) $(PROJECT_PURE) + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + +$(TEST_CONFIG): test_config.c $(UNITY) $(PROJECT_PURE) + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + +$(TEST_ARCHIVE_DETECT): test_archive_detect.c $(UNITY) ../source/archive_extractor_detect.c + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + +$(TEST_SHA256): test_sha256.c $(UNITY) $(PROJECT_PURE) + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + +fixtures: + @./make_fixtures.sh + +test: fixtures $(ALL_TESTS) + @set -e; for t in $(ALL_TESTS); do echo "=== $$t ==="; ./$$t; done + @echo "All host tests passed." + +test-asan: + @$(MAKE) -f Makefile.host CFLAGS="$(CFLAGS) $(ASAN_FLAGS)" LDFLAGS="$(LDFLAGS) $(ASAN_FLAGS)" test + +coverage: + @$(MAKE) -f Makefile.host clean + @$(MAKE) -f Makefile.host CFLAGS="$(CFLAGS) -O0 --coverage" LDFLAGS="$(LDFLAGS) --coverage" test + @mkdir -p coverage + @command -v lcov >/dev/null 2>&1 || { echo "lcov not installed"; exit 1; } + @lcov --capture --directory . --output-file coverage/lcov.info \ + --include "$(CURDIR)/../source/*" + @genhtml coverage/lcov.info --output-directory coverage + @echo "Coverage report: coverage/index.html" + +clean: + @rm -f $(ALL_TESTS) *.o *.gcda *.gcno + @rm -rf coverage + @rm -f fixtures/tiny.zip fixtures/tiny.tar fixtures/tiny.gz \ + fixtures/tiny.bz2 fixtures/tiny.xz fixtures/tiny.7z \ + fixtures/tiny.zst fixtures/tiny.rar fixtures/not_an_archive.bin \ + fixtures/empty.bin fixtures/three_bytes.bin diff --git a/tests/fixtures/config_bom.txt b/tests/fixtures/config_bom.txt new file mode 100644 index 0000000..cef63e4 --- /dev/null +++ b/tests/fixtures/config_bom.txt @@ -0,0 +1 @@ +https://example.com/bom.zip diff --git a/tests/fixtures/config_empty.txt b/tests/fixtures/config_empty.txt new file mode 100644 index 0000000..02db8e1 --- /dev/null +++ b/tests/fixtures/config_empty.txt @@ -0,0 +1,4 @@ +# this file contains only comments +# +# nothing else + diff --git a/tests/fixtures/config_long_url.txt b/tests/fixtures/config_long_url.txt new file mode 100644 index 0000000..0f491ab --- /dev/null +++ b/tests/fixtures/config_long_url.txt @@ -0,0 +1 @@ +https://example.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.zip diff --git a/tests/fixtures/config_malformed.txt b/tests/fixtures/config_malformed.txt new file mode 100644 index 0000000..b65efb1 --- /dev/null +++ b/tests/fixtures/config_malformed.txt @@ -0,0 +1,6 @@ +extract_path=sdmc:/x/ +auto_retry=invalid +max_retries=999 +unknown_setting=42 +https://example.com/a.zip sha256:notavalidhash +https://example.com/b.zip sha256:0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789abcdef diff --git a/tests/fixtures/config_many_urls.txt b/tests/fixtures/config_many_urls.txt new file mode 100644 index 0000000..995b0be --- /dev/null +++ b/tests/fixtures/config_many_urls.txt @@ -0,0 +1,60 @@ +https://example.com/0.zip +https://example.com/1.zip +https://example.com/2.zip +https://example.com/3.zip +https://example.com/4.zip +https://example.com/5.zip +https://example.com/6.zip +https://example.com/7.zip +https://example.com/8.zip +https://example.com/9.zip +https://example.com/10.zip +https://example.com/11.zip +https://example.com/12.zip +https://example.com/13.zip +https://example.com/14.zip +https://example.com/15.zip +https://example.com/16.zip +https://example.com/17.zip +https://example.com/18.zip +https://example.com/19.zip +https://example.com/20.zip +https://example.com/21.zip +https://example.com/22.zip +https://example.com/23.zip +https://example.com/24.zip +https://example.com/25.zip +https://example.com/26.zip +https://example.com/27.zip +https://example.com/28.zip +https://example.com/29.zip +https://example.com/30.zip +https://example.com/31.zip +https://example.com/32.zip +https://example.com/33.zip +https://example.com/34.zip +https://example.com/35.zip +https://example.com/36.zip +https://example.com/37.zip +https://example.com/38.zip +https://example.com/39.zip +https://example.com/40.zip +https://example.com/41.zip +https://example.com/42.zip +https://example.com/43.zip +https://example.com/44.zip +https://example.com/45.zip +https://example.com/46.zip +https://example.com/47.zip +https://example.com/48.zip +https://example.com/49.zip +https://example.com/50.zip +https://example.com/51.zip +https://example.com/52.zip +https://example.com/53.zip +https://example.com/54.zip +https://example.com/55.zip +https://example.com/56.zip +https://example.com/57.zip +https://example.com/58.zip +https://example.com/59.zip diff --git a/tests/fixtures/config_negative_retries.txt b/tests/fixtures/config_negative_retries.txt new file mode 100644 index 0000000..9d28758 --- /dev/null +++ b/tests/fixtures/config_negative_retries.txt @@ -0,0 +1,2 @@ +max_retries=-1 +https://example.com/x.zip diff --git a/tests/fixtures/config_valid.txt b/tests/fixtures/config_valid.txt new file mode 100644 index 0000000..9b061b2 --- /dev/null +++ b/tests/fixtures/config_valid.txt @@ -0,0 +1,8 @@ +extract_path=sdmc:/foo/ +auto_retry=true +max_retries=5 +https://example.com/a.zip +https://example.com/b.tar.gz sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +# comment line +# another +https://drive.google.com/file/d/ABC123/view diff --git a/tests/make_fixtures.sh b/tests/make_fixtures.sh new file mode 100755 index 0000000..73e0f9e --- /dev/null +++ b/tests/make_fixtures.sh @@ -0,0 +1,139 @@ +#!/usr/bin/env bash +# Generate small archive fixtures for host-side unit tests. +# Idempotent: only writes files when they don't already exist. +set -euo pipefail + +cd "$(dirname "$0")/fixtures" + +# 1. Tiny ZIP — minimal local file header for a single empty file "a". +# Layout: PK\x03\x04 + version+flags+compression+date+time+crc+sizes(0)+name(1)+extra(0) + name "a" +# + central dir + EOCD. We craft this by hand for repeatability and to +# avoid depending on `zip` being installed. +python3 - <<'PY' +import struct, os + +def write_zip(path): + name = b"a" + local = struct.pack(" + +void setUp(void) {} +void tearDown(void) {} + +#define FIXTURE(name) ("fixtures/" name) + +static void test_zip(void) { + TEST_ASSERT_EQUAL(ARCHIVE_ZIP, detect_archive_type(FIXTURE("tiny.zip"))); +} +static void test_gzip(void) { + TEST_ASSERT_EQUAL(ARCHIVE_GZIP, detect_archive_type(FIXTURE("tiny.gz"))); +} +static void test_bzip2(void) { + TEST_ASSERT_EQUAL(ARCHIVE_BZIP2, detect_archive_type(FIXTURE("tiny.bz2"))); +} +static void test_xz(void) { + TEST_ASSERT_EQUAL(ARCHIVE_XZ, detect_archive_type(FIXTURE("tiny.xz"))); +} +static void test_zstd(void) { + TEST_ASSERT_EQUAL(ARCHIVE_ZSTD, detect_archive_type(FIXTURE("tiny.zst"))); +} +static void test_7z(void) { + TEST_ASSERT_EQUAL(ARCHIVE_7Z, detect_archive_type(FIXTURE("tiny.7z"))); +} +static void test_rar(void) { + TEST_ASSERT_EQUAL(ARCHIVE_RAR, detect_archive_type(FIXTURE("tiny.rar"))); +} +static void test_tar(void) { + TEST_ASSERT_EQUAL(ARCHIVE_TAR, detect_archive_type(FIXTURE("tiny.tar"))); +} + +static void test_too_short(void) { + TEST_ASSERT_EQUAL(ARCHIVE_UNKNOWN, detect_archive_type(FIXTURE("three_bytes.bin"))); + TEST_ASSERT_EQUAL(ARCHIVE_UNKNOWN, detect_archive_type(FIXTURE("empty.bin"))); +} + +static void test_not_an_archive(void) { + TEST_ASSERT_EQUAL(ARCHIVE_UNKNOWN, detect_archive_type(FIXTURE("not_an_archive.bin"))); +} + +static void test_missing_file(void) { + TEST_ASSERT_EQUAL(ARCHIVE_UNKNOWN, detect_archive_type(FIXTURE("does_not_exist.bin"))); +} + +static void test_null_safe(void) { + TEST_ASSERT_EQUAL(ARCHIVE_UNKNOWN, detect_archive_type(NULL)); +} + +static void test_type_names(void) { + TEST_ASSERT_EQUAL_STRING("ZIP", get_archive_type_name(ARCHIVE_ZIP)); + TEST_ASSERT_EQUAL_STRING("TAR", get_archive_type_name(ARCHIVE_TAR)); + TEST_ASSERT_EQUAL_STRING("GZIP/TAR.GZ", get_archive_type_name(ARCHIVE_GZIP)); + TEST_ASSERT_EQUAL_STRING("BZIP2/TAR.BZ2",get_archive_type_name(ARCHIVE_BZIP2)); + TEST_ASSERT_EQUAL_STRING("XZ/TAR.XZ", get_archive_type_name(ARCHIVE_XZ)); + TEST_ASSERT_EQUAL_STRING("7-Zip", get_archive_type_name(ARCHIVE_7Z)); + TEST_ASSERT_EQUAL_STRING("RAR", get_archive_type_name(ARCHIVE_RAR)); + TEST_ASSERT_EQUAL_STRING("ZSTD/TAR.ZSTD",get_archive_type_name(ARCHIVE_ZSTD)); + TEST_ASSERT_EQUAL_STRING("Unknown", get_archive_type_name(ARCHIVE_UNKNOWN)); +} + +int main(void) { + UNITY_BEGIN(); + RUN_TEST(test_zip); + RUN_TEST(test_gzip); + RUN_TEST(test_bzip2); + RUN_TEST(test_xz); + RUN_TEST(test_zstd); + RUN_TEST(test_7z); + RUN_TEST(test_rar); + RUN_TEST(test_tar); + RUN_TEST(test_too_short); + RUN_TEST(test_not_an_archive); + RUN_TEST(test_missing_file); + RUN_TEST(test_null_safe); + RUN_TEST(test_type_names); + return UNITY_END(); +} diff --git a/tests/test_config.c b/tests/test_config.c new file mode 100644 index 0000000..38e3a65 --- /dev/null +++ b/tests/test_config.c @@ -0,0 +1,123 @@ +// Unit tests for read_config_file. +#include "unity.h" +#include "../include/config.h" +#include + +void setUp(void) {} +void tearDown(void) {} + +#define FIXTURE(name) ("fixtures/" name) + +static void test_missing_file_returns_minus_one(void) { + AppConfig cfg; + int rc = read_config_file(FIXTURE("does_not_exist.txt"), &cfg); + TEST_ASSERT_EQUAL(-1, rc); + // Defaults still applied. + TEST_ASSERT_EQUAL_STRING("sdmc:/extracted/", cfg.extract_path); + TEST_ASSERT_EQUAL(3, cfg.max_retries); + TEST_ASSERT_FALSE(cfg.auto_retry); + TEST_ASSERT_EQUAL(MAX_URLS, cfg.max_urls); + TEST_ASSERT_EQUAL(128, cfg.download_buffer_kb); + TEST_ASSERT_EQUAL(30, cfg.connect_timeout_s); +} + +static void test_empty_or_comments_only(void) { + AppConfig cfg; + int rc = read_config_file(FIXTURE("config_empty.txt"), &cfg); + TEST_ASSERT_EQUAL(0, rc); + TEST_ASSERT_EQUAL(0, cfg.count); + TEST_ASSERT_EQUAL_STRING("sdmc:/extracted/", cfg.extract_path); +} + +static void test_valid_settings_and_urls(void) { + AppConfig cfg; + int rc = read_config_file(FIXTURE("config_valid.txt"), &cfg); + TEST_ASSERT_GREATER_OR_EQUAL(3, rc); + TEST_ASSERT_EQUAL_STRING("sdmc:/foo/", cfg.extract_path); + TEST_ASSERT_TRUE(cfg.auto_retry); + TEST_ASSERT_EQUAL(5, cfg.max_retries); + + // First URL — bare. + TEST_ASSERT_EQUAL_STRING("https://example.com/a.zip", cfg.items[0].url); + TEST_ASSERT_EQUAL_STRING("", cfg.items[0].sha256_hex); + + // Second URL — has a sha256 suffix that must be split off. + TEST_ASSERT_EQUAL_STRING("https://example.com/b.tar.gz", cfg.items[1].url); + TEST_ASSERT_EQUAL_STRING( + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + cfg.items[1].sha256_hex); + + // Third URL — Google Drive (kept unchanged in storage; conversion + // happens at download time). + TEST_ASSERT_EQUAL_STRING("https://drive.google.com/file/d/ABC123/view", + cfg.items[2].url); +} + +static void test_malformed_settings_clamped(void) { + AppConfig cfg; + read_config_file(FIXTURE("config_malformed.txt"), &cfg); + // auto_retry=invalid → falls back to default (false). + TEST_ASSERT_FALSE(cfg.auto_retry); + // max_retries=999 → clamped to 10. + TEST_ASSERT_EQUAL(10, cfg.max_retries); + // First URL has an invalid sha (not 64 hex), so it stays attached as + // part of the URL — but we should NOT crash. + TEST_ASSERT_TRUE(cfg.count >= 1); + // Second URL has a valid 64-hex sha (mixed case — we lowercase). + int idx = -1; + for (int i = 0; i < cfg.count; i++) { + if (strcmp(cfg.items[i].url, "https://example.com/b.zip") == 0) idx = i; + } + TEST_ASSERT_NOT_EQUAL(-1, idx); + TEST_ASSERT_EQUAL_STRING( + "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", + cfg.items[idx].sha256_hex); +} + +static void test_negative_retries_clamped(void) { + AppConfig cfg; + read_config_file(FIXTURE("config_negative_retries.txt"), &cfg); + TEST_ASSERT_EQUAL(0, cfg.max_retries); +} + +static void test_many_urls_clamped_to_max(void) { + AppConfig cfg; + int rc = read_config_file(FIXTURE("config_many_urls.txt"), &cfg); + TEST_ASSERT_EQUAL(MAX_URLS < 60 ? MAX_URLS : 60, rc); + TEST_ASSERT_EQUAL(rc, cfg.count); + TEST_ASSERT_LESS_OR_EQUAL(MAX_URLS, cfg.count); +} + +static void test_long_url_truncated_no_overflow(void) { + AppConfig cfg; + int rc = read_config_file(FIXTURE("config_long_url.txt"), &cfg); + // Still loads (1 URL), URL is truncated to fit, NUL terminated. + TEST_ASSERT_EQUAL(1, rc); + TEST_ASSERT_EQUAL_CHAR('\0', cfg.items[0].url[MAX_URL_LENGTH - 1]); +} + +static void test_utf8_bom_ignored(void) { + AppConfig cfg; + int rc = read_config_file(FIXTURE("config_bom.txt"), &cfg); + TEST_ASSERT_EQUAL(1, rc); + TEST_ASSERT_EQUAL_STRING("https://example.com/bom.zip", cfg.items[0].url); +} + +static void test_null_cfg_safe(void) { + int rc = read_config_file(FIXTURE("config_valid.txt"), NULL); + TEST_ASSERT_EQUAL(-1, rc); +} + +int main(void) { + UNITY_BEGIN(); + RUN_TEST(test_missing_file_returns_minus_one); + RUN_TEST(test_empty_or_comments_only); + RUN_TEST(test_valid_settings_and_urls); + RUN_TEST(test_malformed_settings_clamped); + RUN_TEST(test_negative_retries_clamped); + RUN_TEST(test_many_urls_clamped_to_max); + RUN_TEST(test_long_url_truncated_no_overflow); + RUN_TEST(test_utf8_bom_ignored); + RUN_TEST(test_null_cfg_safe); + return UNITY_END(); +} diff --git a/tests/test_gdrive.c b/tests/test_gdrive.c new file mode 100644 index 0000000..124b5cf --- /dev/null +++ b/tests/test_gdrive.c @@ -0,0 +1,92 @@ +// Unit tests for convert_gdrive_url. +#include "unity.h" +#include "../include/gdrive.h" +#include + +void setUp(void) {} +void tearDown(void) {} + +static void assert_contains(const char* haystack, const char* needle) { + TEST_ASSERT_NOT_NULL_MESSAGE(strstr(haystack, needle), needle); +} + +// /file/d//view → uc?export=download&id=&confirm=t +static void test_file_d_view(void) { + char out[512]; + convert_gdrive_url("https://drive.google.com/file/d/ABC123/view", out, sizeof(out)); + assert_contains(out, "drive.google.com/uc?export=download"); + assert_contains(out, "id=ABC123"); + assert_contains(out, "confirm=t"); +} + +static void test_open_id(void) { + char out[512]; + convert_gdrive_url("https://drive.google.com/open?id=XYZ789", out, sizeof(out)); + assert_contains(out, "id=XYZ789"); + assert_contains(out, "confirm=t"); +} + +static void test_uc_id(void) { + char out[512]; + convert_gdrive_url("https://drive.google.com/uc?id=DEF&export=download", + out, sizeof(out)); + assert_contains(out, "id=DEF"); +} + +static void test_non_gdrive_unchanged(void) { + char out[512]; + convert_gdrive_url("https://example.com/foo.zip", out, sizeof(out)); + TEST_ASSERT_EQUAL_STRING("https://example.com/foo.zip", out); +} + +static void test_folder_url_unchanged(void) { + const char* in = "https://drive.google.com/drive/folders/abcd"; + char out[512]; + convert_gdrive_url(in, out, sizeof(out)); + TEST_ASSERT_EQUAL_STRING(in, out); +} + +static void test_small_buffer_no_overflow(void) { + // Buffer too small to hold the full converted URL — output must still be + // NUL-terminated and not overrun. We sandwich the buffer between guards. + char guard1[8]; + char out[16]; + char guard2[8]; + memset(guard1, 'A', sizeof(guard1)); + memset(guard2, 'B', sizeof(guard2)); + + convert_gdrive_url("https://drive.google.com/file/d/ABCDEFGHIJ/view", + out, sizeof(out)); + // Guards must be untouched. + for (size_t i = 0; i < sizeof(guard1); i++) TEST_ASSERT_EQUAL(guard1[i], 'A'); + for (size_t i = 0; i < sizeof(guard2); i++) TEST_ASSERT_EQUAL(guard2[i], 'B'); + // out must be NUL-terminated. + TEST_ASSERT_EQUAL_CHAR('\0', out[sizeof(out) - 1]); +} + +static void test_null_inputs_dont_crash(void) { + char out[16]; + out[0] = 'X'; + convert_gdrive_url(NULL, out, sizeof(out)); + TEST_ASSERT_EQUAL_CHAR('\0', out[0]); + + // NULL out is also tolerated. + convert_gdrive_url("https://example.com", NULL, 0); + + // Empty input. + out[0] = 'X'; + convert_gdrive_url("", out, sizeof(out)); + TEST_ASSERT_EQUAL_STRING("", out); +} + +int main(void) { + UNITY_BEGIN(); + RUN_TEST(test_file_d_view); + RUN_TEST(test_open_id); + RUN_TEST(test_uc_id); + RUN_TEST(test_non_gdrive_unchanged); + RUN_TEST(test_folder_url_unchanged); + RUN_TEST(test_small_buffer_no_overflow); + RUN_TEST(test_null_inputs_dont_crash); + return UNITY_END(); +} diff --git a/tests/test_sha256.c b/tests/test_sha256.c new file mode 100644 index 0000000..5b09569 --- /dev/null +++ b/tests/test_sha256.c @@ -0,0 +1,83 @@ +// Unit tests for SHA-256 hashing + integrity verification. +#include "unity.h" +#include "../include/integrity.h" +#include +#include + +void setUp(void) {} +void tearDown(void) {} + +static const char* SHA256_EMPTY = + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; +static const char* SHA256_ABC = + "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"; + +static void test_empty_string(void) { + char hex[65]; + sha256_hex("", 0, hex); + TEST_ASSERT_EQUAL_STRING(SHA256_EMPTY, hex); +} + +static void test_abc(void) { + char hex[65]; + sha256_hex("abc", 3, hex); + TEST_ASSERT_EQUAL_STRING(SHA256_ABC, hex); +} + +static void test_null_data_safe(void) { + char hex[65]; + sha256_hex(NULL, 0, hex); + TEST_ASSERT_EQUAL_STRING(SHA256_EMPTY, hex); +} + +static void test_file_known(void) { + // Hash the known fixture "fixtures/three_bytes.bin" which contains "abc". + char hex[65]; + TEST_ASSERT_TRUE(sha256_hex_file("fixtures/three_bytes.bin", hex)); + TEST_ASSERT_EQUAL_STRING(SHA256_ABC, hex); +} + +static void test_file_missing(void) { + char hex[65]; + TEST_ASSERT_FALSE(sha256_hex_file("fixtures/does_not_exist", hex)); + TEST_ASSERT_EQUAL_STRING("", hex); +} + +static void test_verify_integrity_match(void) { + TEST_ASSERT_TRUE(verify_integrity("fixtures/three_bytes.bin", SHA256_ABC)); +} + +static void test_verify_integrity_case_insensitive(void) { + char upper[65]; + for (int i = 0; i < 64; i++) { + char c = SHA256_ABC[i]; + if (c >= 'a' && c <= 'f') c = (char)(c - 'a' + 'A'); + upper[i] = c; + } + upper[64] = '\0'; + TEST_ASSERT_TRUE(verify_integrity("fixtures/three_bytes.bin", upper)); +} + +static void test_verify_integrity_mismatch(void) { + TEST_ASSERT_FALSE(verify_integrity("fixtures/three_bytes.bin", SHA256_EMPTY)); +} + +static void test_verify_integrity_null_safe(void) { + TEST_ASSERT_FALSE(verify_integrity(NULL, SHA256_EMPTY)); + TEST_ASSERT_FALSE(verify_integrity("fixtures/three_bytes.bin", NULL)); + TEST_ASSERT_FALSE(verify_integrity("fixtures/three_bytes.bin", "")); +} + +int main(void) { + UNITY_BEGIN(); + RUN_TEST(test_empty_string); + RUN_TEST(test_abc); + RUN_TEST(test_null_data_safe); + RUN_TEST(test_file_known); + RUN_TEST(test_file_missing); + RUN_TEST(test_verify_integrity_match); + RUN_TEST(test_verify_integrity_case_insensitive); + RUN_TEST(test_verify_integrity_mismatch); + RUN_TEST(test_verify_integrity_null_safe); + return UNITY_END(); +} diff --git a/tests/unity.c b/tests/unity.c new file mode 100644 index 0000000..b105fa2 --- /dev/null +++ b/tests/unity.c @@ -0,0 +1,2487 @@ +/* ========================================================================= + Unity Project - A Test Framework for C + Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams + [Released under MIT License. Please refer to license.txt for details] +============================================================================ */ + +#include "unity.h" + +#ifndef UNITY_PROGMEM +#define UNITY_PROGMEM +#endif + +/* If omitted from header, declare overrideable prototypes here so they're ready for use */ +#ifdef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION +void UNITY_OUTPUT_CHAR(int); +#endif + +/* Helpful macros for us to use here in Assert functions */ +#define UNITY_FAIL_AND_BAIL do { Unity.CurrentTestFailed = 1; UNITY_OUTPUT_FLUSH(); TEST_ABORT(); } while (0) +#define UNITY_IGNORE_AND_BAIL do { Unity.CurrentTestIgnored = 1; UNITY_OUTPUT_FLUSH(); TEST_ABORT(); } while (0) +#define RETURN_IF_FAIL_OR_IGNORE do { if (Unity.CurrentTestFailed || Unity.CurrentTestIgnored) { TEST_ABORT(); } } while (0) + +struct UNITY_STORAGE_T Unity; + +#ifdef UNITY_OUTPUT_COLOR +const char UNITY_PROGMEM UnityStrOk[] = "\033[42mOK\033[0m"; +const char UNITY_PROGMEM UnityStrPass[] = "\033[42mPASS\033[0m"; +const char UNITY_PROGMEM UnityStrFail[] = "\033[41mFAIL\033[0m"; +const char UNITY_PROGMEM UnityStrIgnore[] = "\033[43mIGNORE\033[0m"; +#else +const char UNITY_PROGMEM UnityStrOk[] = "OK"; +const char UNITY_PROGMEM UnityStrPass[] = "PASS"; +const char UNITY_PROGMEM UnityStrFail[] = "FAIL"; +const char UNITY_PROGMEM UnityStrIgnore[] = "IGNORE"; +#endif +static const char UNITY_PROGMEM UnityStrNull[] = "NULL"; +static const char UNITY_PROGMEM UnityStrSpacer[] = ". "; +static const char UNITY_PROGMEM UnityStrExpected[] = " Expected "; +static const char UNITY_PROGMEM UnityStrWas[] = " Was "; +static const char UNITY_PROGMEM UnityStrGt[] = " to be greater than "; +static const char UNITY_PROGMEM UnityStrLt[] = " to be less than "; +static const char UNITY_PROGMEM UnityStrOrEqual[] = "or equal to "; +static const char UNITY_PROGMEM UnityStrNotEqual[] = " to be not equal to "; +static const char UNITY_PROGMEM UnityStrElement[] = " Element "; +static const char UNITY_PROGMEM UnityStrByte[] = " Byte "; +static const char UNITY_PROGMEM UnityStrMemory[] = " Memory Mismatch."; +static const char UNITY_PROGMEM UnityStrDelta[] = " Values Not Within Delta "; +static const char UNITY_PROGMEM UnityStrPointless[] = " You Asked Me To Compare Nothing, Which Was Pointless."; +static const char UNITY_PROGMEM UnityStrNullPointerForExpected[] = " Expected pointer to be NULL"; +static const char UNITY_PROGMEM UnityStrNullPointerForActual[] = " Actual pointer was NULL"; +#ifndef UNITY_EXCLUDE_FLOAT +static const char UNITY_PROGMEM UnityStrNot[] = "Not "; +static const char UNITY_PROGMEM UnityStrInf[] = "Infinity"; +static const char UNITY_PROGMEM UnityStrNegInf[] = "Negative Infinity"; +static const char UNITY_PROGMEM UnityStrNaN[] = "NaN"; +static const char UNITY_PROGMEM UnityStrDet[] = "Determinate"; +static const char UNITY_PROGMEM UnityStrInvalidFloatTrait[] = "Invalid Float Trait"; +#endif +const char UNITY_PROGMEM UnityStrErrShorthand[] = "Unity Shorthand Support Disabled"; +const char UNITY_PROGMEM UnityStrErrFloat[] = "Unity Floating Point Disabled"; +const char UNITY_PROGMEM UnityStrErrDouble[] = "Unity Double Precision Disabled"; +const char UNITY_PROGMEM UnityStrErr64[] = "Unity 64-bit Support Disabled"; +static const char UNITY_PROGMEM UnityStrBreaker[] = "-----------------------"; +static const char UNITY_PROGMEM UnityStrResultsTests[] = " Tests "; +static const char UNITY_PROGMEM UnityStrResultsFailures[] = " Failures "; +static const char UNITY_PROGMEM UnityStrResultsIgnored[] = " Ignored "; +#ifndef UNITY_EXCLUDE_DETAILS +static const char UNITY_PROGMEM UnityStrDetail1Name[] = UNITY_DETAIL1_NAME " "; +static const char UNITY_PROGMEM UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " "; +#endif +/*----------------------------------------------- + * Pretty Printers & Test Result Output Handlers + *-----------------------------------------------*/ + +/*-----------------------------------------------*/ +/* Local helper function to print characters. */ +static void UnityPrintChar(const char* pch) +{ + /* printable characters plus CR & LF are printed */ + if ((*pch <= 126) && (*pch >= 32)) + { + UNITY_OUTPUT_CHAR(*pch); + } + /* write escaped carriage returns */ + else if (*pch == 13) + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('r'); + } + /* write escaped line feeds */ + else if (*pch == 10) + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('n'); + } + /* unprintable characters are shown as codes */ + else + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('x'); + UnityPrintNumberHex((UNITY_UINT)*pch, 2); + } +} + +/*-----------------------------------------------*/ +/* Local helper function to print ANSI escape strings e.g. "\033[42m". */ +#ifdef UNITY_OUTPUT_COLOR +static UNITY_UINT UnityPrintAnsiEscapeString(const char* string) +{ + const char* pch = string; + UNITY_UINT count = 0; + + while (*pch && (*pch != 'm')) + { + UNITY_OUTPUT_CHAR(*pch); + pch++; + count++; + } + UNITY_OUTPUT_CHAR('m'); + count++; + + return count; +} +#endif + +/*-----------------------------------------------*/ +void UnityPrint(const char* string) +{ + const char* pch = string; + + if (pch != NULL) + { + while (*pch) + { +#ifdef UNITY_OUTPUT_COLOR + /* print ANSI escape code */ + if ((*pch == 27) && (*(pch + 1) == '[')) + { + pch += UnityPrintAnsiEscapeString(pch); + continue; + } +#endif + UnityPrintChar(pch); + pch++; + } + } +} +/*-----------------------------------------------*/ +void UnityPrintLen(const char* string, const UNITY_UINT32 length) +{ + const char* pch = string; + + if (pch != NULL) + { + while (*pch && ((UNITY_UINT32)(pch - string) < length)) + { + /* printable characters plus CR & LF are printed */ + if ((*pch <= 126) && (*pch >= 32)) + { + UNITY_OUTPUT_CHAR(*pch); + } + /* write escaped carriage returns */ + else if (*pch == 13) + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('r'); + } + /* write escaped line feeds */ + else if (*pch == 10) + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('n'); + } + /* unprintable characters are shown as codes */ + else + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('x'); + UnityPrintNumberHex((UNITY_UINT)*pch, 2); + } + pch++; + } + } +} + +/*-----------------------------------------------*/ +void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style) +{ + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + if (style == UNITY_DISPLAY_STYLE_CHAR) + { + /* printable characters plus CR & LF are printed */ + UNITY_OUTPUT_CHAR('\''); + if ((number <= 126) && (number >= 32)) + { + UNITY_OUTPUT_CHAR((int)number); + } + /* write escaped carriage returns */ + else if (number == 13) + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('r'); + } + /* write escaped line feeds */ + else if (number == 10) + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('n'); + } + /* unprintable characters are shown as codes */ + else + { + UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('x'); + UnityPrintNumberHex((UNITY_UINT)number, 2); + } + UNITY_OUTPUT_CHAR('\''); + } + else + { + UnityPrintNumber(number); + } + } + else if ((style & UNITY_DISPLAY_RANGE_UINT) == UNITY_DISPLAY_RANGE_UINT) + { + UnityPrintNumberUnsigned((UNITY_UINT)number); + } + else + { + UNITY_OUTPUT_CHAR('0'); + UNITY_OUTPUT_CHAR('x'); + UnityPrintNumberHex((UNITY_UINT)number, (char)((style & 0xF) * 2)); + } +} + +/*-----------------------------------------------*/ +void UnityPrintNumber(const UNITY_INT number_to_print) +{ + UNITY_UINT number = (UNITY_UINT)number_to_print; + + if (number_to_print < 0) + { + /* A negative number, including MIN negative */ + UNITY_OUTPUT_CHAR('-'); + number = (~number) + 1; + } + UnityPrintNumberUnsigned(number); +} + +/*----------------------------------------------- + * basically do an itoa using as little ram as possible */ +void UnityPrintNumberUnsigned(const UNITY_UINT number) +{ + UNITY_UINT divisor = 1; + + /* figure out initial divisor */ + while (number / divisor > 9) + { + divisor *= 10; + } + + /* now mod and print, then divide divisor */ + do + { + UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10))); + divisor /= 10; + } while (divisor > 0); +} + +/*-----------------------------------------------*/ +void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print) +{ + int nibble; + char nibbles = nibbles_to_print; + + if ((unsigned)nibbles > UNITY_MAX_NIBBLES) + { + nibbles = UNITY_MAX_NIBBLES; + } + + while (nibbles > 0) + { + nibbles--; + nibble = (int)(number >> (nibbles * 4)) & 0x0F; + if (nibble <= 9) + { + UNITY_OUTPUT_CHAR((char)('0' + nibble)); + } + else + { + UNITY_OUTPUT_CHAR((char)('A' - 10 + nibble)); + } + } +} + +/*-----------------------------------------------*/ +void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number) +{ + UNITY_UINT current_bit = (UNITY_UINT)1 << (UNITY_INT_WIDTH - 1); + UNITY_INT32 i; + + for (i = 0; i < UNITY_INT_WIDTH; i++) + { + if (current_bit & mask) + { + if (current_bit & number) + { + UNITY_OUTPUT_CHAR('1'); + } + else + { + UNITY_OUTPUT_CHAR('0'); + } + } + else + { + UNITY_OUTPUT_CHAR('X'); + } + current_bit = current_bit >> 1; + } +} + +/*-----------------------------------------------*/ +#ifndef UNITY_EXCLUDE_FLOAT_PRINT +/* + * This function prints a floating-point value in a format similar to + * printf("%.7g") on a single-precision machine or printf("%.9g") on a + * double-precision machine. The 7th digit won't always be totally correct + * in single-precision operation (for that level of accuracy, a more + * complicated algorithm would be needed). + */ +void UnityPrintFloat(const UNITY_DOUBLE input_number) +{ +#ifdef UNITY_INCLUDE_DOUBLE + static const int sig_digits = 9; + static const UNITY_INT32 min_scaled = 100000000; + static const UNITY_INT32 max_scaled = 1000000000; +#else + static const int sig_digits = 7; + static const UNITY_INT32 min_scaled = 1000000; + static const UNITY_INT32 max_scaled = 10000000; +#endif + + UNITY_DOUBLE number = input_number; + + /* print minus sign (does not handle negative zero) */ + if (number < 0.0f) + { + UNITY_OUTPUT_CHAR('-'); + number = -number; + } + + /* handle zero, NaN, and +/- infinity */ + if (number == 0.0f) + { + UnityPrint("0"); + } + else if (UNITY_IS_NAN(number)) + { + UnityPrint("nan"); + } + else if (UNITY_IS_INF(number)) + { + UnityPrint("inf"); + } + else + { + UNITY_INT32 n_int = 0; + UNITY_INT32 n; + int exponent = 0; + int decimals; + int digits; + char buf[16] = {0}; + + /* + * Scale up or down by powers of 10. To minimize rounding error, + * start with a factor/divisor of 10^10, which is the largest + * power of 10 that can be represented exactly. Finally, compute + * (exactly) the remaining power of 10 and perform one more + * multiplication or division. + */ + if (number < 1.0f) + { + UNITY_DOUBLE factor = 1.0f; + + while (number < (UNITY_DOUBLE)max_scaled / 1e10f) { number *= 1e10f; exponent -= 10; } + while (number * factor < (UNITY_DOUBLE)min_scaled) { factor *= 10.0f; exponent--; } + + number *= factor; + } + else if (number > (UNITY_DOUBLE)max_scaled) + { + UNITY_DOUBLE divisor = 1.0f; + + while (number > (UNITY_DOUBLE)min_scaled * 1e10f) { number /= 1e10f; exponent += 10; } + while (number / divisor > (UNITY_DOUBLE)max_scaled) { divisor *= 10.0f; exponent++; } + + number /= divisor; + } + else + { + /* + * In this range, we can split off the integer part before + * doing any multiplications. This reduces rounding error by + * freeing up significant bits in the fractional part. + */ + UNITY_DOUBLE factor = 1.0f; + n_int = (UNITY_INT32)number; + number -= (UNITY_DOUBLE)n_int; + + while (n_int < min_scaled) { n_int *= 10; factor *= 10.0f; exponent--; } + + number *= factor; + } + + /* round to nearest integer */ + n = ((UNITY_INT32)(number + number) + 1) / 2; + +#ifndef UNITY_ROUND_TIES_AWAY_FROM_ZERO + /* round to even if exactly between two integers */ + if ((n & 1) && (((UNITY_DOUBLE)n - number) == 0.5f)) + n--; +#endif + + n += n_int; + + if (n >= max_scaled) + { + n = min_scaled; + exponent++; + } + + /* determine where to place decimal point */ + decimals = ((exponent <= 0) && (exponent >= -(sig_digits + 3))) ? (-exponent) : (sig_digits - 1); + exponent += decimals; + + /* truncate trailing zeroes after decimal point */ + while ((decimals > 0) && ((n % 10) == 0)) + { + n /= 10; + decimals--; + } + + /* build up buffer in reverse order */ + digits = 0; + while ((n != 0) || (digits <= decimals)) + { + buf[digits++] = (char)('0' + n % 10); + n /= 10; + } + + /* print out buffer (backwards) */ + while (digits > 0) + { + if (digits == decimals) + { + UNITY_OUTPUT_CHAR('.'); + } + UNITY_OUTPUT_CHAR(buf[--digits]); + } + + /* print exponent if needed */ + if (exponent != 0) + { + UNITY_OUTPUT_CHAR('e'); + + if (exponent < 0) + { + UNITY_OUTPUT_CHAR('-'); + exponent = -exponent; + } + else + { + UNITY_OUTPUT_CHAR('+'); + } + + digits = 0; + while ((exponent != 0) || (digits < 2)) + { + buf[digits++] = (char)('0' + exponent % 10); + exponent /= 10; + } + while (digits > 0) + { + UNITY_OUTPUT_CHAR(buf[--digits]); + } + } + } +} +#endif /* ! UNITY_EXCLUDE_FLOAT_PRINT */ + +/*-----------------------------------------------*/ +static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line) +{ +#ifdef UNITY_OUTPUT_FOR_ECLIPSE + UNITY_OUTPUT_CHAR('('); + UnityPrint(file); + UNITY_OUTPUT_CHAR(':'); + UnityPrintNumber((UNITY_INT)line); + UNITY_OUTPUT_CHAR(')'); + UNITY_OUTPUT_CHAR(' '); + UnityPrint(Unity.CurrentTestName); + UNITY_OUTPUT_CHAR(':'); +#else +#ifdef UNITY_OUTPUT_FOR_IAR_WORKBENCH + UnityPrint("'); + UnityPrint(Unity.CurrentTestName); + UnityPrint(" "); +#else +#ifdef UNITY_OUTPUT_FOR_QT_CREATOR + UnityPrint("file://"); + UnityPrint(file); + UNITY_OUTPUT_CHAR(':'); + UnityPrintNumber((UNITY_INT)line); + UNITY_OUTPUT_CHAR(' '); + UnityPrint(Unity.CurrentTestName); + UNITY_OUTPUT_CHAR(':'); +#else + UnityPrint(file); + UNITY_OUTPUT_CHAR(':'); + UnityPrintNumber((UNITY_INT)line); + UNITY_OUTPUT_CHAR(':'); + UnityPrint(Unity.CurrentTestName); + UNITY_OUTPUT_CHAR(':'); +#endif +#endif +#endif +} + +/*-----------------------------------------------*/ +static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line) +{ + UnityTestResultsBegin(Unity.TestFile, line); + UnityPrint(UnityStrFail); + UNITY_OUTPUT_CHAR(':'); +} + +/*-----------------------------------------------*/ +void UnityConcludeTest(void) +{ + if (Unity.CurrentTestIgnored) + { + Unity.TestIgnores++; + } + else if (!Unity.CurrentTestFailed) + { + UnityTestResultsBegin(Unity.TestFile, Unity.CurrentTestLineNumber); + UnityPrint(UnityStrPass); + } + else + { + Unity.TestFailures++; + } + + Unity.CurrentTestFailed = 0; + Unity.CurrentTestIgnored = 0; + UNITY_PRINT_EXEC_TIME(); + UNITY_PRINT_EOL(); + UNITY_FLUSH_CALL(); +} + +/*-----------------------------------------------*/ +static void UnityAddMsgIfSpecified(const char* msg) +{ +#ifdef UNITY_PRINT_TEST_CONTEXT + UnityPrint(UnityStrSpacer); + UNITY_PRINT_TEST_CONTEXT(); +#endif +#ifndef UNITY_EXCLUDE_DETAILS + if (Unity.CurrentDetail1) + { + UnityPrint(UnityStrSpacer); + UnityPrint(UnityStrDetail1Name); + UnityPrint(Unity.CurrentDetail1); + if (Unity.CurrentDetail2) + { + UnityPrint(UnityStrDetail2Name); + UnityPrint(Unity.CurrentDetail2); + } + } +#endif + if (msg) + { + UnityPrint(UnityStrSpacer); + UnityPrint(msg); + } +} + +/*-----------------------------------------------*/ +static void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual) +{ + UnityPrint(UnityStrExpected); + if (expected != NULL) + { + UNITY_OUTPUT_CHAR('\''); + UnityPrint(expected); + UNITY_OUTPUT_CHAR('\''); + } + else + { + UnityPrint(UnityStrNull); + } + UnityPrint(UnityStrWas); + if (actual != NULL) + { + UNITY_OUTPUT_CHAR('\''); + UnityPrint(actual); + UNITY_OUTPUT_CHAR('\''); + } + else + { + UnityPrint(UnityStrNull); + } +} + +/*-----------------------------------------------*/ +static void UnityPrintExpectedAndActualStringsLen(const char* expected, + const char* actual, + const UNITY_UINT32 length) +{ + UnityPrint(UnityStrExpected); + if (expected != NULL) + { + UNITY_OUTPUT_CHAR('\''); + UnityPrintLen(expected, length); + UNITY_OUTPUT_CHAR('\''); + } + else + { + UnityPrint(UnityStrNull); + } + UnityPrint(UnityStrWas); + if (actual != NULL) + { + UNITY_OUTPUT_CHAR('\''); + UnityPrintLen(actual, length); + UNITY_OUTPUT_CHAR('\''); + } + else + { + UnityPrint(UnityStrNull); + } +} + +/*----------------------------------------------- + * Assertion & Control Helpers + *-----------------------------------------------*/ + +/*-----------------------------------------------*/ +static int UnityIsOneArrayNull(UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_LINE_TYPE lineNumber, + const char* msg) +{ + /* Both are NULL or same pointer */ + if (expected == actual) { return 0; } + + /* print and return true if just expected is NULL */ + if (expected == NULL) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrNullPointerForExpected); + UnityAddMsgIfSpecified(msg); + return 1; + } + + /* print and return true if just actual is NULL */ + if (actual == NULL) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrNullPointerForActual); + UnityAddMsgIfSpecified(msg); + return 1; + } + + return 0; /* return false if neither is NULL */ +} + +/*----------------------------------------------- + * Assertion Functions + *-----------------------------------------------*/ + +/*-----------------------------------------------*/ +void UnityAssertBits(const UNITY_INT mask, + const UNITY_INT expected, + const UNITY_INT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + RETURN_IF_FAIL_OR_IGNORE; + + if ((mask & expected) != (mask & actual)) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)expected); + UnityPrint(UnityStrWas); + UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertEqualNumber(const UNITY_INT expected, + const UNITY_INT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style) +{ + RETURN_IF_FAIL_OR_IGNORE; + + if (expected != actual) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintNumberByStyle(expected, style); + UnityPrint(UnityStrWas); + UnityPrintNumberByStyle(actual, style); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertGreaterOrLessOrEqualNumber(const UNITY_INT threshold, + const UNITY_INT actual, + const UNITY_COMPARISON_T compare, + const char *msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style) +{ + int failed = 0; + RETURN_IF_FAIL_OR_IGNORE; + + if ((threshold == actual) && (compare & UNITY_EQUAL_TO)) { return; } + if ((threshold == actual)) { failed = 1; } + + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + if ((actual > threshold) && (compare & UNITY_SMALLER_THAN)) { failed = 1; } + if ((actual < threshold) && (compare & UNITY_GREATER_THAN)) { failed = 1; } + } + else /* UINT or HEX */ + { + if (((UNITY_UINT)actual > (UNITY_UINT)threshold) && (compare & UNITY_SMALLER_THAN)) { failed = 1; } + if (((UNITY_UINT)actual < (UNITY_UINT)threshold) && (compare & UNITY_GREATER_THAN)) { failed = 1; } + } + + if (failed) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintNumberByStyle(actual, style); + if (compare & UNITY_GREATER_THAN) { UnityPrint(UnityStrGt); } + if (compare & UNITY_SMALLER_THAN) { UnityPrint(UnityStrLt); } + if (compare & UNITY_EQUAL_TO) { UnityPrint(UnityStrOrEqual); } + if (compare == UNITY_NOT_EQUAL) { UnityPrint(UnityStrNotEqual); } + UnityPrintNumberByStyle(threshold, style); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +#define UnityPrintPointlessAndBail() \ +do { \ + UnityTestResultsFailBegin(lineNumber); \ + UnityPrint(UnityStrPointless); \ + UnityAddMsgIfSpecified(msg); \ + UNITY_FAIL_AND_BAIL; \ +} while (0) + +/*-----------------------------------------------*/ +void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style, + const UNITY_FLAGS_T flags) +{ + UNITY_UINT32 elements = num_elements; + unsigned int length = style & 0xF; + unsigned int increment = 0; + + RETURN_IF_FAIL_OR_IGNORE; + + if (num_elements == 0) + { +#ifdef UNITY_COMPARE_PTRS_ON_ZERO_ARRAY + UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, lineNumber, msg); +#else + UnityPrintPointlessAndBail(); +#endif + } + + if (expected == actual) + { + return; /* Both are NULL or same pointer */ + } + + if (UnityIsOneArrayNull(expected, actual, lineNumber, msg)) + { + UNITY_FAIL_AND_BAIL; + } + + while ((elements > 0) && (elements--)) + { + UNITY_INT expect_val; + UNITY_INT actual_val; + + switch (length) + { + case 1: + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)actual; + if (style & (UNITY_DISPLAY_RANGE_UINT | UNITY_DISPLAY_RANGE_HEX)) + { + expect_val &= 0x000000FF; + actual_val &= 0x000000FF; + } + increment = sizeof(UNITY_INT8); + break; + + case 2: + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)actual; + if (style & (UNITY_DISPLAY_RANGE_UINT | UNITY_DISPLAY_RANGE_HEX)) + { + expect_val &= 0x0000FFFF; + actual_val &= 0x0000FFFF; + } + increment = sizeof(UNITY_INT16); + break; + +#ifdef UNITY_SUPPORT_64 + case 8: + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)actual; + increment = sizeof(UNITY_INT64); + break; +#endif + + default: /* default is length 4 bytes */ + case 4: + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)actual; +#ifdef UNITY_SUPPORT_64 + if (style & (UNITY_DISPLAY_RANGE_UINT | UNITY_DISPLAY_RANGE_HEX)) + { + expect_val &= 0x00000000FFFFFFFF; + actual_val &= 0x00000000FFFFFFFF; + } +#endif + increment = sizeof(UNITY_INT32); + length = 4; + break; + } + + if (expect_val != actual_val) + { + if ((style & UNITY_DISPLAY_RANGE_UINT) && (length < (UNITY_INT_WIDTH / 8))) + { /* For UINT, remove sign extension (padding 1's) from signed type casts above */ + UNITY_INT mask = 1; + mask = (mask << 8 * length) - 1; + expect_val &= mask; + actual_val &= mask; + } + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrElement); + UnityPrintNumberUnsigned(num_elements - elements - 1); + UnityPrint(UnityStrExpected); + UnityPrintNumberByStyle(expect_val, style); + UnityPrint(UnityStrWas); + UnityPrintNumberByStyle(actual_val, style); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } + /* Walk through array by incrementing the pointers */ + if (flags == UNITY_ARRAY_TO_ARRAY) + { + expected = (UNITY_INTERNAL_PTR)((const char*)expected + increment); + } + actual = (UNITY_INTERNAL_PTR)((const char*)actual + increment); + } +} + +/*-----------------------------------------------*/ +#ifndef UNITY_EXCLUDE_FLOAT +/* Wrap this define in a function with variable types as float or double */ +#define UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff) \ + if (UNITY_IS_INF(expected) && UNITY_IS_INF(actual) && (((expected) < 0) == ((actual) < 0))) return 1; \ + if (UNITY_NAN_CHECK) return 1; \ + (diff) = (actual) - (expected); \ + if ((diff) < 0) (diff) = -(diff); \ + if ((delta) < 0) (delta) = -(delta); \ + return !(UNITY_IS_NAN(diff) || UNITY_IS_INF(diff) || ((diff) > (delta))) + /* This first part of this condition will catch any NaN or Infinite values */ +#ifndef UNITY_NAN_NOT_EQUAL_NAN + #define UNITY_NAN_CHECK UNITY_IS_NAN(expected) && UNITY_IS_NAN(actual) +#else + #define UNITY_NAN_CHECK 0 +#endif + +#ifndef UNITY_EXCLUDE_FLOAT_PRINT + #define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \ + do { \ + UnityPrint(UnityStrExpected); \ + UnityPrintFloat(expected); \ + UnityPrint(UnityStrWas); \ + UnityPrintFloat(actual); \ + } while (0) +#else + #define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \ + UnityPrint(UnityStrDelta) +#endif /* UNITY_EXCLUDE_FLOAT_PRINT */ + +/*-----------------------------------------------*/ +static int UnityFloatsWithin(UNITY_FLOAT delta, UNITY_FLOAT expected, UNITY_FLOAT actual) +{ + UNITY_FLOAT diff; + UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff); +} + +/*-----------------------------------------------*/ +void UnityAssertWithinFloatArray(const UNITY_FLOAT delta, + UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected, + UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags) +{ + UNITY_UINT32 elements = num_elements; + UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_expected = expected; + UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_actual = actual; + UNITY_FLOAT in_delta = delta; + UNITY_FLOAT current_element_delta = delta; + + RETURN_IF_FAIL_OR_IGNORE; + + if (elements == 0) + { +#ifdef UNITY_COMPARE_PTRS_ON_ZERO_ARRAY + UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, lineNumber, msg); +#else + UnityPrintPointlessAndBail(); +#endif + } + + if (UNITY_IS_INF(in_delta)) + { + return; /* Arrays will be force equal with infinite delta */ + } + + if (UNITY_IS_NAN(in_delta)) + { + /* Delta must be correct number */ + UnityPrintPointlessAndBail(); + } + + if (expected == actual) + { + return; /* Both are NULL or same pointer */ + } + + if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg)) + { + UNITY_FAIL_AND_BAIL; + } + + /* fix delta sign if need */ + if (in_delta < 0) + { + in_delta = -in_delta; + } + + while (elements--) + { + current_element_delta = *ptr_expected * UNITY_FLOAT_PRECISION; + + if (current_element_delta < 0) + { + /* fix delta sign for correct calculations */ + current_element_delta = -current_element_delta; + } + + if (!UnityFloatsWithin(in_delta + current_element_delta, *ptr_expected, *ptr_actual)) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrElement); + UnityPrintNumberUnsigned(num_elements - elements - 1); + UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)*ptr_expected, (UNITY_DOUBLE)*ptr_actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } + if (flags == UNITY_ARRAY_TO_ARRAY) + { + ptr_expected++; + } + ptr_actual++; + } +} + +/*-----------------------------------------------*/ +void UnityAssertFloatsWithin(const UNITY_FLOAT delta, + const UNITY_FLOAT expected, + const UNITY_FLOAT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + RETURN_IF_FAIL_OR_IGNORE; + + + if (!UnityFloatsWithin(delta, expected, actual)) + { + UnityTestResultsFailBegin(lineNumber); + UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)expected, (UNITY_DOUBLE)actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertFloatsNotWithin(const UNITY_FLOAT delta, + const UNITY_FLOAT expected, + const UNITY_FLOAT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + RETURN_IF_FAIL_OR_IGNORE; + + if (UnityFloatsWithin(delta, expected, actual)) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintFloat((UNITY_DOUBLE)expected); + UnityPrint(UnityStrNotEqual); + UnityPrintFloat((UNITY_DOUBLE)actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertGreaterOrLessFloat(const UNITY_FLOAT threshold, + const UNITY_FLOAT actual, + const UNITY_COMPARISON_T compare, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + int failed; + + RETURN_IF_FAIL_OR_IGNORE; + + failed = 0; + + /* Checking for "not success" rather than failure to get the right result for NaN */ + if (!(actual < threshold) && (compare & UNITY_SMALLER_THAN)) { failed = 1; } + if (!(actual > threshold) && (compare & UNITY_GREATER_THAN)) { failed = 1; } + + if ((compare & UNITY_EQUAL_TO) && UnityFloatsWithin(threshold * UNITY_FLOAT_PRECISION, threshold, actual)) { failed = 0; } + + if (failed) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintFloat(actual); + if (compare & UNITY_GREATER_THAN) { UnityPrint(UnityStrGt); } + if (compare & UNITY_SMALLER_THAN) { UnityPrint(UnityStrLt); } + if (compare & UNITY_EQUAL_TO) { UnityPrint(UnityStrOrEqual); } + UnityPrintFloat(threshold); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertFloatSpecial(const UNITY_FLOAT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLOAT_TRAIT_T style) +{ + const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet}; + UNITY_INT should_be_trait = ((UNITY_INT)style & 1); + UNITY_INT is_trait = !should_be_trait; + UNITY_INT trait_index = (UNITY_INT)(style >> 1); + + RETURN_IF_FAIL_OR_IGNORE; + + switch (style) + { + case UNITY_FLOAT_IS_INF: + case UNITY_FLOAT_IS_NOT_INF: + is_trait = UNITY_IS_INF(actual) && (actual > 0); + break; + case UNITY_FLOAT_IS_NEG_INF: + case UNITY_FLOAT_IS_NOT_NEG_INF: + is_trait = UNITY_IS_INF(actual) && (actual < 0); + break; + + case UNITY_FLOAT_IS_NAN: + case UNITY_FLOAT_IS_NOT_NAN: + is_trait = UNITY_IS_NAN(actual) ? 1 : 0; + break; + + case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */ + case UNITY_FLOAT_IS_NOT_DET: + is_trait = !UNITY_IS_INF(actual) && !UNITY_IS_NAN(actual); + break; + + case UNITY_FLOAT_INVALID_TRAIT: /* Supress warning */ + default: /* including UNITY_FLOAT_INVALID_TRAIT */ + trait_index = 0; + trait_names[0] = UnityStrInvalidFloatTrait; + break; + } + + if (is_trait != should_be_trait) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + if (!should_be_trait) + { + UnityPrint(UnityStrNot); + } + UnityPrint(trait_names[trait_index]); + UnityPrint(UnityStrWas); +#ifndef UNITY_EXCLUDE_FLOAT_PRINT + UnityPrintFloat((UNITY_DOUBLE)actual); +#else + if (should_be_trait) + { + UnityPrint(UnityStrNot); + } + UnityPrint(trait_names[trait_index]); +#endif + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +#endif /* not UNITY_EXCLUDE_FLOAT */ + +/*-----------------------------------------------*/ +#ifndef UNITY_EXCLUDE_DOUBLE +static int UnityDoublesWithin(UNITY_DOUBLE delta, UNITY_DOUBLE expected, UNITY_DOUBLE actual) +{ + UNITY_DOUBLE diff; + UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff); +} + +/*-----------------------------------------------*/ +void UnityAssertWithinDoubleArray(const UNITY_DOUBLE delta, + UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expected, + UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags) +{ + UNITY_UINT32 elements = num_elements; + UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_expected = expected; + UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_actual = actual; + UNITY_DOUBLE in_delta = delta; + UNITY_DOUBLE current_element_delta = delta; + + RETURN_IF_FAIL_OR_IGNORE; + + if (elements == 0) + { +#ifdef UNITY_COMPARE_PTRS_ON_ZERO_ARRAY + UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, lineNumber, msg); +#else + UnityPrintPointlessAndBail(); +#endif + } + + if (UNITY_IS_INF(in_delta)) + { + return; /* Arrays will be force equal with infinite delta */ + } + + if (UNITY_IS_NAN(in_delta)) + { + /* Delta must be correct number */ + UnityPrintPointlessAndBail(); + } + + if (expected == actual) + { + return; /* Both are NULL or same pointer */ + } + + if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg)) + { + UNITY_FAIL_AND_BAIL; + } + + /* fix delta sign if need */ + if (in_delta < 0) + { + in_delta = -in_delta; + } + + while (elements--) + { + current_element_delta = *ptr_expected * UNITY_DOUBLE_PRECISION; + + if (current_element_delta < 0) + { + /* fix delta sign for correct calculations */ + current_element_delta = -current_element_delta; + } + + if (!UnityDoublesWithin(in_delta + current_element_delta, *ptr_expected, *ptr_actual)) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrElement); + UnityPrintNumberUnsigned(num_elements - elements - 1); + UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(*ptr_expected, *ptr_actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } + if (flags == UNITY_ARRAY_TO_ARRAY) + { + ptr_expected++; + } + ptr_actual++; + } +} + +/*-----------------------------------------------*/ +void UnityAssertDoublesWithin(const UNITY_DOUBLE delta, + const UNITY_DOUBLE expected, + const UNITY_DOUBLE actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + RETURN_IF_FAIL_OR_IGNORE; + + if (!UnityDoublesWithin(delta, expected, actual)) + { + UnityTestResultsFailBegin(lineNumber); + UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertDoublesNotWithin(const UNITY_DOUBLE delta, + const UNITY_DOUBLE expected, + const UNITY_DOUBLE actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + RETURN_IF_FAIL_OR_IGNORE; + + if (UnityDoublesWithin(delta, expected, actual)) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintFloat((UNITY_DOUBLE)expected); + UnityPrint(UnityStrNotEqual); + UnityPrintFloat((UNITY_DOUBLE)actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertGreaterOrLessDouble(const UNITY_DOUBLE threshold, + const UNITY_DOUBLE actual, + const UNITY_COMPARISON_T compare, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + int failed; + + RETURN_IF_FAIL_OR_IGNORE; + + failed = 0; + + /* Checking for "not success" rather than failure to get the right result for NaN */ + if (!(actual < threshold) && (compare & UNITY_SMALLER_THAN)) { failed = 1; } + if (!(actual > threshold) && (compare & UNITY_GREATER_THAN)) { failed = 1; } + + if ((compare & UNITY_EQUAL_TO) && UnityDoublesWithin(threshold * UNITY_DOUBLE_PRECISION, threshold, actual)) { failed = 0; } + + if (failed) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + UnityPrintFloat(actual); + if (compare & UNITY_GREATER_THAN) { UnityPrint(UnityStrGt); } + if (compare & UNITY_SMALLER_THAN) { UnityPrint(UnityStrLt); } + if (compare & UNITY_EQUAL_TO) { UnityPrint(UnityStrOrEqual); } + UnityPrintFloat(threshold); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLOAT_TRAIT_T style) +{ + const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet}; + UNITY_INT should_be_trait = ((UNITY_INT)style & 1); + UNITY_INT is_trait = !should_be_trait; + UNITY_INT trait_index = (UNITY_INT)(style >> 1); + + RETURN_IF_FAIL_OR_IGNORE; + + switch (style) + { + case UNITY_FLOAT_IS_INF: + case UNITY_FLOAT_IS_NOT_INF: + is_trait = UNITY_IS_INF(actual) && (actual > 0); + break; + case UNITY_FLOAT_IS_NEG_INF: + case UNITY_FLOAT_IS_NOT_NEG_INF: + is_trait = UNITY_IS_INF(actual) && (actual < 0); + break; + + case UNITY_FLOAT_IS_NAN: + case UNITY_FLOAT_IS_NOT_NAN: + is_trait = UNITY_IS_NAN(actual) ? 1 : 0; + break; + + case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */ + case UNITY_FLOAT_IS_NOT_DET: + is_trait = !UNITY_IS_INF(actual) && !UNITY_IS_NAN(actual); + break; + + case UNITY_FLOAT_INVALID_TRAIT: /* Supress warning */ + default: /* including UNITY_FLOAT_INVALID_TRAIT */ + trait_index = 0; + trait_names[0] = UnityStrInvalidFloatTrait; + break; + } + + if (is_trait != should_be_trait) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrExpected); + if (!should_be_trait) + { + UnityPrint(UnityStrNot); + } + UnityPrint(trait_names[trait_index]); + UnityPrint(UnityStrWas); +#ifndef UNITY_EXCLUDE_FLOAT_PRINT + UnityPrintFloat(actual); +#else + if (should_be_trait) + { + UnityPrint(UnityStrNot); + } + UnityPrint(trait_names[trait_index]); +#endif + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +#endif /* not UNITY_EXCLUDE_DOUBLE */ + +/*-----------------------------------------------*/ +void UnityAssertNumbersWithin(const UNITY_UINT delta, + const UNITY_INT expected, + const UNITY_INT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style) +{ + RETURN_IF_FAIL_OR_IGNORE; + + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + if (actual > expected) + { + Unity.CurrentTestFailed = (((UNITY_UINT)actual - (UNITY_UINT)expected) > delta); + } + else + { + Unity.CurrentTestFailed = (((UNITY_UINT)expected - (UNITY_UINT)actual) > delta); + } + } + else + { + if ((UNITY_UINT)actual > (UNITY_UINT)expected) + { + Unity.CurrentTestFailed = (((UNITY_UINT)actual - (UNITY_UINT)expected) > delta); + } + else + { + Unity.CurrentTestFailed = (((UNITY_UINT)expected - (UNITY_UINT)actual) > delta); + } + } + + if (Unity.CurrentTestFailed) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrDelta); + UnityPrintNumberByStyle((UNITY_INT)delta, style); + UnityPrint(UnityStrExpected); + UnityPrintNumberByStyle(expected, style); + UnityPrint(UnityStrWas); + UnityPrintNumberByStyle(actual, style); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertNumbersArrayWithin(const UNITY_UINT delta, + UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style, + const UNITY_FLAGS_T flags) +{ + UNITY_UINT32 elements = num_elements; + unsigned int length = style & 0xF; + unsigned int increment = 0; + + RETURN_IF_FAIL_OR_IGNORE; + + if (num_elements == 0) + { +#ifdef UNITY_COMPARE_PTRS_ON_ZERO_ARRAY + UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, lineNumber, msg); +#else + UnityPrintPointlessAndBail(); +#endif + } + + if (expected == actual) + { + return; /* Both are NULL or same pointer */ + } + + if (UnityIsOneArrayNull(expected, actual, lineNumber, msg)) + { + UNITY_FAIL_AND_BAIL; + } + + while ((elements > 0) && (elements--)) + { + UNITY_INT expect_val; + UNITY_INT actual_val; + + switch (length) + { + case 1: + /* fixing problems with signed overflow on unsigned numbers */ + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)actual; + increment = sizeof(UNITY_INT8); + } + else + { + expect_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT8*)expected; + actual_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT8*)actual; + increment = sizeof(UNITY_UINT8); + } + break; + + case 2: + /* fixing problems with signed overflow on unsigned numbers */ + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)actual; + increment = sizeof(UNITY_INT16); + } + else + { + expect_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT16*)expected; + actual_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT16*)actual; + increment = sizeof(UNITY_UINT16); + } + break; + +#ifdef UNITY_SUPPORT_64 + case 8: + /* fixing problems with signed overflow on unsigned numbers */ + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)actual; + increment = sizeof(UNITY_INT64); + } + else + { + expect_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT64*)expected; + actual_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT64*)actual; + increment = sizeof(UNITY_UINT64); + } + break; +#endif + + default: /* default is length 4 bytes */ + case 4: + /* fixing problems with signed overflow on unsigned numbers */ + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)expected; + actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)actual; + increment = sizeof(UNITY_INT32); + } + else + { + expect_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT32*)expected; + actual_val = (UNITY_INT)*(UNITY_PTR_ATTRIBUTE const UNITY_UINT32*)actual; + increment = sizeof(UNITY_UINT32); + } + length = 4; + break; + } + + if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) + { + if (actual_val > expect_val) + { + Unity.CurrentTestFailed = (((UNITY_UINT)actual_val - (UNITY_UINT)expect_val) > delta); + } + else + { + Unity.CurrentTestFailed = (((UNITY_UINT)expect_val - (UNITY_UINT)actual_val) > delta); + } + } + else + { + if ((UNITY_UINT)actual_val > (UNITY_UINT)expect_val) + { + Unity.CurrentTestFailed = (((UNITY_UINT)actual_val - (UNITY_UINT)expect_val) > delta); + } + else + { + Unity.CurrentTestFailed = (((UNITY_UINT)expect_val - (UNITY_UINT)actual_val) > delta); + } + } + + if (Unity.CurrentTestFailed) + { + if ((style & UNITY_DISPLAY_RANGE_UINT) && (length < (UNITY_INT_WIDTH / 8))) + { /* For UINT, remove sign extension (padding 1's) from signed type casts above */ + UNITY_INT mask = 1; + mask = (mask << 8 * length) - 1; + expect_val &= mask; + actual_val &= mask; + } + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrDelta); + UnityPrintNumberByStyle((UNITY_INT)delta, style); + UnityPrint(UnityStrElement); + UnityPrintNumberUnsigned(num_elements - elements - 1); + UnityPrint(UnityStrExpected); + UnityPrintNumberByStyle(expect_val, style); + UnityPrint(UnityStrWas); + UnityPrintNumberByStyle(actual_val, style); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } + /* Walk through array by incrementing the pointers */ + if (flags == UNITY_ARRAY_TO_ARRAY) + { + expected = (UNITY_INTERNAL_PTR)((const char*)expected + increment); + } + actual = (UNITY_INTERNAL_PTR)((const char*)actual + increment); + } +} + +/*-----------------------------------------------*/ +void UnityAssertEqualString(const char* expected, + const char* actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + UNITY_UINT32 i; + + RETURN_IF_FAIL_OR_IGNORE; + + /* if both pointers not null compare the strings */ + if (expected && actual) + { + for (i = 0; expected[i] || actual[i]; i++) + { + if (expected[i] != actual[i]) + { + Unity.CurrentTestFailed = 1; + break; + } + } + } + else + { /* fail if either null but not if both */ + if (expected || actual) + { + Unity.CurrentTestFailed = 1; + } + } + + if (Unity.CurrentTestFailed) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrintExpectedAndActualStrings(expected, actual); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertEqualStringLen(const char* expected, + const char* actual, + const UNITY_UINT32 length, + const char* msg, + const UNITY_LINE_TYPE lineNumber) +{ + UNITY_UINT32 i; + + RETURN_IF_FAIL_OR_IGNORE; + + /* if both pointers not null compare the strings */ + if (expected && actual) + { + for (i = 0; (i < length) && (expected[i] || actual[i]); i++) + { + if (expected[i] != actual[i]) + { + Unity.CurrentTestFailed = 1; + break; + } + } + } + else + { /* fail if either null but not if both */ + if (expected || actual) + { + Unity.CurrentTestFailed = 1; + } + } + + if (Unity.CurrentTestFailed) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrintExpectedAndActualStringsLen(expected, actual, length); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } +} + +/*-----------------------------------------------*/ +void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected, + const char** actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags) +{ + UNITY_UINT32 i = 0; + UNITY_UINT32 j = 0; + const char* expd = NULL; + const char* act = NULL; + + RETURN_IF_FAIL_OR_IGNORE; + + /* if no elements, it's an error */ + if (num_elements == 0) + { +#ifdef UNITY_COMPARE_PTRS_ON_ZERO_ARRAY + UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, lineNumber, msg); +#else + UnityPrintPointlessAndBail(); +#endif + } + + if ((const void*)expected == (const void*)actual) + { + return; /* Both are NULL or same pointer */ + } + + if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg)) + { + UNITY_FAIL_AND_BAIL; + } + + if (flags != UNITY_ARRAY_TO_ARRAY) + { + expd = (const char*)expected; + } + + do + { + act = actual[j]; + if (flags == UNITY_ARRAY_TO_ARRAY) + { + expd = ((const char* const*)expected)[j]; + } + + /* if both pointers not null compare the strings */ + if (expd && act) + { + for (i = 0; expd[i] || act[i]; i++) + { + if (expd[i] != act[i]) + { + Unity.CurrentTestFailed = 1; + break; + } + } + } + else + { /* handle case of one pointers being null (if both null, test should pass) */ + if (expd != act) + { + Unity.CurrentTestFailed = 1; + } + } + + if (Unity.CurrentTestFailed) + { + UnityTestResultsFailBegin(lineNumber); + if (num_elements > 1) + { + UnityPrint(UnityStrElement); + UnityPrintNumberUnsigned(j); + } + UnityPrintExpectedAndActualStrings(expd, act); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } + } while (++j < num_elements); +} + +/*-----------------------------------------------*/ +void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_UINT32 length, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags) +{ + UNITY_PTR_ATTRIBUTE const unsigned char* ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected; + UNITY_PTR_ATTRIBUTE const unsigned char* ptr_act = (UNITY_PTR_ATTRIBUTE const unsigned char*)actual; + UNITY_UINT32 elements = num_elements; + UNITY_UINT32 bytes; + + RETURN_IF_FAIL_OR_IGNORE; + + if (elements == 0) + { +#ifdef UNITY_COMPARE_PTRS_ON_ZERO_ARRAY + UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, lineNumber, msg); +#else + UnityPrintPointlessAndBail(); +#endif + } + if (length == 0) + { + UnityPrintPointlessAndBail(); + } + + if (expected == actual) + { + return; /* Both are NULL or same pointer */ + } + + if (UnityIsOneArrayNull(expected, actual, lineNumber, msg)) + { + UNITY_FAIL_AND_BAIL; + } + + while (elements--) + { + bytes = length; + while (bytes--) + { + if (*ptr_exp != *ptr_act) + { + UnityTestResultsFailBegin(lineNumber); + UnityPrint(UnityStrMemory); + if (num_elements > 1) + { + UnityPrint(UnityStrElement); + UnityPrintNumberUnsigned(num_elements - elements - 1); + } + UnityPrint(UnityStrByte); + UnityPrintNumberUnsigned(length - bytes - 1); + UnityPrint(UnityStrExpected); + UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8); + UnityPrint(UnityStrWas); + UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8); + UnityAddMsgIfSpecified(msg); + UNITY_FAIL_AND_BAIL; + } + ptr_exp++; + ptr_act++; + } + if (flags == UNITY_ARRAY_TO_VAL) + { + ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected; + } + } +} + +/*-----------------------------------------------*/ + +static union +{ + UNITY_INT8 i8; + UNITY_INT16 i16; + UNITY_INT32 i32; +#ifdef UNITY_SUPPORT_64 + UNITY_INT64 i64; +#endif +#ifndef UNITY_EXCLUDE_FLOAT + float f; +#endif +#ifndef UNITY_EXCLUDE_DOUBLE + double d; +#endif +} UnityQuickCompare; + +UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size) +{ + switch(size) + { + case 1: + UnityQuickCompare.i8 = (UNITY_INT8)num; + return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i8); + + case 2: + UnityQuickCompare.i16 = (UNITY_INT16)num; + return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i16); + +#ifdef UNITY_SUPPORT_64 + case 8: + UnityQuickCompare.i64 = (UNITY_INT64)num; + return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i64); +#endif + + default: /* 4 bytes */ + UnityQuickCompare.i32 = (UNITY_INT32)num; + return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i32); + } +} + +#ifndef UNITY_EXCLUDE_FLOAT +/*-----------------------------------------------*/ +UNITY_INTERNAL_PTR UnityFloatToPtr(const float num) +{ + UnityQuickCompare.f = num; + return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.f); +} +#endif + +#ifndef UNITY_EXCLUDE_DOUBLE +/*-----------------------------------------------*/ +UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num) +{ + UnityQuickCompare.d = num; + return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.d); +} +#endif + +#ifdef UNITY_INCLUDE_PRINT_FORMATTED + +/*----------------------------------------------- + * printf length modifier helpers + *-----------------------------------------------*/ + +enum UnityLengthModifier { + UNITY_LENGTH_MODIFIER_NONE, + UNITY_LENGTH_MODIFIER_LONG_LONG, + UNITY_LENGTH_MODIFIER_LONG, +}; + +#define UNITY_EXTRACT_ARG(NUMBER_T, NUMBER, LENGTH_MOD, VA, ARG_T) \ +do { \ + switch (LENGTH_MOD) \ + { \ + case UNITY_LENGTH_MODIFIER_LONG_LONG: \ + { \ + NUMBER = (NUMBER_T)va_arg(VA, long long ARG_T); \ + break; \ + } \ + case UNITY_LENGTH_MODIFIER_LONG: \ + { \ + NUMBER = (NUMBER_T)va_arg(VA, long ARG_T); \ + break; \ + } \ + case UNITY_LENGTH_MODIFIER_NONE: \ + default: \ + { \ + NUMBER = (NUMBER_T)va_arg(VA, ARG_T); \ + break; \ + } \ + } \ +} while (0) + +static enum UnityLengthModifier UnityLengthModifierGet(const char *pch, int *length) +{ + enum UnityLengthModifier length_mod; + switch (pch[0]) + { + case 'l': + { + if (pch[1] == 'l') + { + *length = 2; + length_mod = UNITY_LENGTH_MODIFIER_LONG_LONG; + } + else + { + *length = 1; + length_mod = UNITY_LENGTH_MODIFIER_LONG; + } + break; + } + case 'h': + { + // short and char are converted to int + length_mod = UNITY_LENGTH_MODIFIER_NONE; + if (pch[1] == 'h') + { + *length = 2; + } + else + { + *length = 1; + } + break; + } + case 'j': + case 'z': + case 't': + case 'L': + { + // Not supported, but should gobble up the length specifier anyway + length_mod = UNITY_LENGTH_MODIFIER_NONE; + *length = 1; + break; + } + default: + { + length_mod = UNITY_LENGTH_MODIFIER_NONE; + *length = 0; + } + } + return length_mod; +} + +/*----------------------------------------------- + * printf helper function + *-----------------------------------------------*/ +static void UnityPrintFVA(const char* format, va_list va) +{ + const char* pch = format; + if (pch != NULL) + { + while (*pch) + { + /* format identification character */ + if (*pch == '%') + { + pch++; + + if (pch != NULL) + { + int length_mod_size; + enum UnityLengthModifier length_mod = UnityLengthModifierGet(pch, &length_mod_size); + pch += length_mod_size; + + switch (*pch) + { + case 'd': + case 'i': + { + UNITY_INT number; + UNITY_EXTRACT_ARG(UNITY_INT, number, length_mod, va, int); + UnityPrintNumber((UNITY_INT)number); + break; + } +#ifndef UNITY_EXCLUDE_FLOAT_PRINT + case 'f': + case 'g': + { + const double number = va_arg(va, double); + UnityPrintFloat((UNITY_DOUBLE)number); + break; + } +#endif + case 'u': + { + UNITY_UINT number; + UNITY_EXTRACT_ARG(UNITY_UINT, number, length_mod, va, unsigned int); + UnityPrintNumberUnsigned(number); + break; + } + case 'b': + { + UNITY_UINT number; + UNITY_EXTRACT_ARG(UNITY_UINT, number, length_mod, va, unsigned int); + const UNITY_UINT mask = (UNITY_UINT)0 - (UNITY_UINT)1; + UNITY_OUTPUT_CHAR('0'); + UNITY_OUTPUT_CHAR('b'); + UnityPrintMask(mask, number); + break; + } + case 'x': + case 'X': + { + UNITY_UINT number; + UNITY_EXTRACT_ARG(UNITY_UINT, number, length_mod, va, unsigned int); + UNITY_OUTPUT_CHAR('0'); + UNITY_OUTPUT_CHAR('x'); + UnityPrintNumberHex(number, UNITY_MAX_NIBBLES); + break; + } + case 'p': + { + UNITY_UINT number; + char nibbles_to_print = 8; + if (UNITY_POINTER_WIDTH == 64) + { + length_mod = UNITY_LENGTH_MODIFIER_LONG_LONG; + nibbles_to_print = 16; + } + UNITY_EXTRACT_ARG(UNITY_UINT, number, length_mod, va, unsigned int); + UNITY_OUTPUT_CHAR('0'); + UNITY_OUTPUT_CHAR('x'); + UnityPrintNumberHex((UNITY_UINT)number, nibbles_to_print); + break; + } + case 'c': + { + const int ch = va_arg(va, int); + UnityPrintChar((const char *)&ch); + break; + } + case 's': + { + const char * string = va_arg(va, const char *); + UnityPrint(string); + break; + } + case '%': + { + UnityPrintChar(pch); + break; + } + default: + { + /* print the unknown format character */ + UNITY_OUTPUT_CHAR('%'); + UnityPrintChar(pch); + break; + } + } + } + } +#ifdef UNITY_OUTPUT_COLOR + /* print ANSI escape code */ + else if ((*pch == 27) && (*(pch + 1) == '[')) + { + pch += UnityPrintAnsiEscapeString(pch); + continue; + } +#endif + else if (*pch == '\n') + { + UNITY_PRINT_EOL(); + } + else + { + UnityPrintChar(pch); + } + + pch++; + } + } +} + +void UnityPrintF(const UNITY_LINE_TYPE line, const char* format, ...) +{ + UnityTestResultsBegin(Unity.TestFile, line); + UnityPrint("INFO"); + if(format != NULL) + { + UnityPrint(": "); + va_list va; + va_start(va, format); + UnityPrintFVA(format, va); + va_end(va); + } + UNITY_PRINT_EOL(); +} +#endif /* ! UNITY_INCLUDE_PRINT_FORMATTED */ + + +/*----------------------------------------------- + * Control Functions + *-----------------------------------------------*/ + +/*-----------------------------------------------*/ +void UnityFail(const char* msg, const UNITY_LINE_TYPE line) +{ + RETURN_IF_FAIL_OR_IGNORE; + + UnityTestResultsBegin(Unity.TestFile, line); + UnityPrint(UnityStrFail); + if (msg != NULL) + { + UNITY_OUTPUT_CHAR(':'); + +#ifdef UNITY_PRINT_TEST_CONTEXT + UNITY_PRINT_TEST_CONTEXT(); +#endif +#ifndef UNITY_EXCLUDE_DETAILS + if (Unity.CurrentDetail1) + { + UnityPrint(UnityStrDetail1Name); + UnityPrint(Unity.CurrentDetail1); + if (Unity.CurrentDetail2) + { + UnityPrint(UnityStrDetail2Name); + UnityPrint(Unity.CurrentDetail2); + } + UnityPrint(UnityStrSpacer); + } +#endif + if (msg[0] != ' ') + { + UNITY_OUTPUT_CHAR(' '); + } + UnityPrint(msg); + } + + UNITY_FAIL_AND_BAIL; +} + +/*-----------------------------------------------*/ +void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line) +{ + RETURN_IF_FAIL_OR_IGNORE; + + UnityTestResultsBegin(Unity.TestFile, line); + UnityPrint(UnityStrIgnore); + if (msg != NULL) + { + UNITY_OUTPUT_CHAR(':'); + UNITY_OUTPUT_CHAR(' '); + UnityPrint(msg); + } + UNITY_IGNORE_AND_BAIL; +} + +/*-----------------------------------------------*/ +void UnityMessage(const char* msg, const UNITY_LINE_TYPE line) +{ + UnityTestResultsBegin(Unity.TestFile, line); + UnityPrint("INFO"); + if (msg != NULL) + { + UNITY_OUTPUT_CHAR(':'); + UNITY_OUTPUT_CHAR(' '); + UnityPrint(msg); + } + UNITY_PRINT_EOL(); +} + +/*-----------------------------------------------*/ +/* If we have not defined our own test runner, then include our default test runner to make life easier */ +#ifndef UNITY_SKIP_DEFAULT_RUNNER +void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum) +{ + Unity.CurrentTestName = FuncName; + Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)FuncLineNum; + Unity.NumberOfTests++; + UNITY_CLR_DETAILS(); + UNITY_EXEC_TIME_START(); + if (TEST_PROTECT()) + { + setUp(); + Func(); + } + if (TEST_PROTECT()) + { + tearDown(); + } + UNITY_EXEC_TIME_STOP(); + UnityConcludeTest(); +} +#endif + +/*-----------------------------------------------*/ +void UnitySetTestFile(const char* filename) +{ + Unity.TestFile = filename; +} + +/*-----------------------------------------------*/ +void UnityBegin(const char* filename) +{ + Unity.TestFile = filename; + Unity.CurrentTestName = NULL; + Unity.CurrentTestLineNumber = 0; + Unity.NumberOfTests = 0; + Unity.TestFailures = 0; + Unity.TestIgnores = 0; + Unity.CurrentTestFailed = 0; + Unity.CurrentTestIgnored = 0; + + UNITY_CLR_DETAILS(); + UNITY_OUTPUT_START(); +} + +/*-----------------------------------------------*/ +int UnityEnd(void) +{ + UNITY_PRINT_EOL(); + UnityPrint(UnityStrBreaker); + UNITY_PRINT_EOL(); + UnityPrintNumber((UNITY_INT)(Unity.NumberOfTests)); + UnityPrint(UnityStrResultsTests); + UnityPrintNumber((UNITY_INT)(Unity.TestFailures)); + UnityPrint(UnityStrResultsFailures); + UnityPrintNumber((UNITY_INT)(Unity.TestIgnores)); + UnityPrint(UnityStrResultsIgnored); + UNITY_PRINT_EOL(); + if (Unity.TestFailures == 0U) + { + UnityPrint(UnityStrOk); + } + else + { + UnityPrint(UnityStrFail); +#ifdef UNITY_DIFFERENTIATE_FINAL_FAIL + UNITY_OUTPUT_CHAR('E'); UNITY_OUTPUT_CHAR('D'); +#endif + } + UNITY_PRINT_EOL(); + UNITY_FLUSH_CALL(); + UNITY_OUTPUT_COMPLETE(); + return (int)(Unity.TestFailures); +} + +/*----------------------------------------------- + * Command Line Argument Support + *-----------------------------------------------*/ +#ifdef UNITY_USE_COMMAND_LINE_ARGS + +char* UnityOptionIncludeNamed = NULL; +char* UnityOptionExcludeNamed = NULL; +int UnityVerbosity = 1; + +/*-----------------------------------------------*/ +int UnityParseOptions(int argc, char** argv) +{ + int i; + UnityOptionIncludeNamed = NULL; + UnityOptionExcludeNamed = NULL; + + for (i = 1; i < argc; i++) + { + if (argv[i][0] == '-') + { + switch (argv[i][1]) + { + case 'l': /* list tests */ + return -1; + case 'n': /* include tests with name including this string */ + case 'f': /* an alias for -n */ + if (argv[i][2] == '=') + { + UnityOptionIncludeNamed = &argv[i][3]; + } + else if (++i < argc) + { + UnityOptionIncludeNamed = argv[i]; + } + else + { + UnityPrint("ERROR: No Test String to Include Matches For"); + UNITY_PRINT_EOL(); + return 1; + } + break; + case 'q': /* quiet */ + UnityVerbosity = 0; + break; + case 'v': /* verbose */ + UnityVerbosity = 2; + break; + case 'x': /* exclude tests with name including this string */ + if (argv[i][2] == '=') + { + UnityOptionExcludeNamed = &argv[i][3]; + } + else if (++i < argc) + { + UnityOptionExcludeNamed = argv[i]; + } + else + { + UnityPrint("ERROR: No Test String to Exclude Matches For"); + UNITY_PRINT_EOL(); + return 1; + } + break; + default: + UnityPrint("ERROR: Unknown Option "); + UNITY_OUTPUT_CHAR(argv[i][1]); + UNITY_PRINT_EOL(); + /* Now display help */ + /* FALLTHRU */ + case 'h': + UnityPrint("Options: "); UNITY_PRINT_EOL(); + UnityPrint("-l List all tests and exit"); UNITY_PRINT_EOL(); + UnityPrint("-f NAME Filter to run only tests whose name includes NAME"); UNITY_PRINT_EOL(); + UnityPrint("-n NAME (deprecated) alias of -f"); UNITY_PRINT_EOL(); + UnityPrint("-h show this Help menu"); UNITY_PRINT_EOL(); + UnityPrint("-q Quiet/decrease verbosity"); UNITY_PRINT_EOL(); + UnityPrint("-v increase Verbosity"); UNITY_PRINT_EOL(); + UnityPrint("-x NAME eXclude tests whose name includes NAME"); UNITY_PRINT_EOL(); + UNITY_OUTPUT_FLUSH(); + return 1; + } + } + } + + return 0; +} + +/*-----------------------------------------------*/ +int IsStringInBiggerString(const char* longstring, const char* shortstring) +{ + const char* lptr = longstring; + const char* sptr = shortstring; + const char* lnext = lptr; + + if (*sptr == '*') + { + return 1; + } + + while (*lptr) + { + lnext = lptr + 1; + + /* If they current bytes match, go on to the next bytes */ + while (*lptr && *sptr && (*lptr == *sptr)) + { + lptr++; + sptr++; + + /* We're done if we match the entire string or up to a wildcard */ + if (*sptr == '*') + return 1; + if (*sptr == ',') + return 1; + if (*sptr == '"') + return 1; + if (*sptr == '\'') + return 1; + if (*sptr == ':') + return 2; + if (*sptr == 0) + return 1; + } + + /* Otherwise we start in the long pointer 1 character further and try again */ + lptr = lnext; + sptr = shortstring; + } + + return 0; +} + +/*-----------------------------------------------*/ +int UnityStringArgumentMatches(const char* str) +{ + int retval; + const char* ptr1; + const char* ptr2; + const char* ptrf; + + /* Go through the options and get the substrings for matching one at a time */ + ptr1 = str; + while (ptr1[0] != 0) + { + if ((ptr1[0] == '"') || (ptr1[0] == '\'')) + { + ptr1++; + } + + /* look for the start of the next partial */ + ptr2 = ptr1; + ptrf = 0; + do + { + ptr2++; + if ((ptr2[0] == ':') && (ptr2[1] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ',')) + { + ptrf = &ptr2[1]; + } + } while ((ptr2[0] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ',')); + + while ((ptr2[0] != 0) && ((ptr2[0] == ':') || (ptr2[0] == '\'') || (ptr2[0] == '"') || (ptr2[0] == ','))) + { + ptr2++; + } + + /* done if complete filename match */ + retval = IsStringInBiggerString(Unity.TestFile, ptr1); + if (retval == 1) + { + return retval; + } + + /* done if testname match after filename partial match */ + if ((retval == 2) && (ptrf != 0)) + { + if (IsStringInBiggerString(Unity.CurrentTestName, ptrf)) + { + return 1; + } + } + + /* done if complete testname match */ + if (IsStringInBiggerString(Unity.CurrentTestName, ptr1) == 1) + { + return 1; + } + + ptr1 = ptr2; + } + + /* we couldn't find a match for any substrings */ + return 0; +} + +/*-----------------------------------------------*/ +int UnityTestMatches(void) +{ + /* Check if this test name matches the included test pattern */ + int retval; + if (UnityOptionIncludeNamed) + { + retval = UnityStringArgumentMatches(UnityOptionIncludeNamed); + } + else + { + retval = 1; + } + + /* Check if this test name matches the excluded test pattern */ + if (UnityOptionExcludeNamed) + { + if (UnityStringArgumentMatches(UnityOptionExcludeNamed)) + { + retval = 0; + } + } + + return retval; +} + +#endif /* UNITY_USE_COMMAND_LINE_ARGS */ +/*-----------------------------------------------*/ diff --git a/tests/unity.h b/tests/unity.h new file mode 100644 index 0000000..6ab36d6 --- /dev/null +++ b/tests/unity.h @@ -0,0 +1,1868 @@ +/* ========================================== + Unity Project - A Test Framework for C + Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams + [Released under MIT License. Please refer to license.txt for details] +========================================== */ + +#ifndef UNITY_FRAMEWORK_H +#define UNITY_FRAMEWORK_H +#define UNITY + +#define UNITY_VERSION_MAJOR 2 +#define UNITY_VERSION_MINOR 6 +#define UNITY_VERSION_BUILD 0 +#define UNITY_VERSION ((UNITY_VERSION_MAJOR << 16) | (UNITY_VERSION_MINOR << 8) | UNITY_VERSION_BUILD) + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* === BEGIN inlined unity_internals.h === */ +/* ========================================== + Unity Project - A Test Framework for C + Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams + [Released under MIT License. Please refer to license.txt for details] +========================================== */ + +#ifndef UNITY_INTERNALS_H +#define UNITY_INTERNALS_H + +#ifdef UNITY_INCLUDE_CONFIG_H +#include "unity_config.h" +#endif + +#ifndef UNITY_EXCLUDE_SETJMP_H +#include +#endif + +#ifndef UNITY_EXCLUDE_MATH_H +#include +#endif + +#ifndef UNITY_EXCLUDE_STDDEF_H +#include +#endif + +#ifdef UNITY_INCLUDE_PRINT_FORMATTED +#include +#endif + +/* Unity Attempts to Auto-Detect Integer Types + * Attempt 1: UINT_MAX, ULONG_MAX in , or default to 32 bits + * Attempt 2: UINTPTR_MAX in , or default to same size as long + * The user may override any of these derived constants: + * UNITY_INT_WIDTH, UNITY_LONG_WIDTH, UNITY_POINTER_WIDTH */ +#ifndef UNITY_EXCLUDE_STDINT_H +#include +#endif + +#ifndef UNITY_EXCLUDE_LIMITS_H +#include +#endif + +#if defined(__GNUC__) || defined(__clang__) + #define UNITY_FUNCTION_ATTR(a) __attribute__((a)) +#else + #define UNITY_FUNCTION_ATTR(a) /* ignore */ +#endif + +#ifndef UNITY_NORETURN + #if defined(__cplusplus) + #if __cplusplus >= 201103L + #define UNITY_NORETURN [[ noreturn ]] + #endif + #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #if defined(_WIN32) && defined(_MSC_VER) + /* We are using MSVC compiler on Windows platform. */ + /* Not all Windows SDKs supports , but compiler can support C11: */ + /* https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/ */ + /* Not sure, that Mingw compilers has Windows SDK headers at all. */ + #include + #endif + + /* Using Windows SDK predefined macro for detecting supported SDK with MSVC compiler. */ + /* Mingw GCC should work without that fixes. */ + /* Based on: */ + /* https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170 */ + /* NTDDI_WIN10_FE is equal to Windows 10 SDK 2104 */ + #if defined(_MSC_VER) && ((!defined(NTDDI_WIN10_FE)) || WDK_NTDDI_VERSION < NTDDI_WIN10_FE) + /* Based on tests and: */ + /* https://docs.microsoft.com/en-us/cpp/c-language/noreturn?view=msvc-170 */ + /* https://en.cppreference.com/w/c/language/_Noreturn */ + #define UNITY_NORETURN _Noreturn + #else /* Using newer Windows SDK or not MSVC compiler */ + #include + #define UNITY_NORETURN noreturn + #endif + #endif +#endif +#ifndef UNITY_NORETURN + #define UNITY_NORETURN UNITY_FUNCTION_ATTR(__noreturn__) +#endif + +/*------------------------------------------------------- + * Guess Widths If Not Specified + *-------------------------------------------------------*/ + +/* Determine the size of an int, if not already specified. + * We cannot use sizeof(int), because it is not yet defined + * at this stage in the translation of the C program. + * Also sizeof(int) does return the size in addressable units on all platforms, + * which may not necessarily be the size in bytes. + * Therefore, infer it from UINT_MAX if possible. */ +#ifndef UNITY_INT_WIDTH + #ifdef UINT_MAX + #if (UINT_MAX == 0xFFFF) + #define UNITY_INT_WIDTH (16) + #elif (UINT_MAX == 0xFFFFFFFF) + #define UNITY_INT_WIDTH (32) + #elif (UINT_MAX == 0xFFFFFFFFFFFFFFFF) + #define UNITY_INT_WIDTH (64) + #endif + #else /* Set to default */ + #define UNITY_INT_WIDTH (32) + #endif /* UINT_MAX */ +#endif + +/* Determine the size of a long, if not already specified. */ +#ifndef UNITY_LONG_WIDTH + #ifdef ULONG_MAX + #if (ULONG_MAX == 0xFFFF) + #define UNITY_LONG_WIDTH (16) + #elif (ULONG_MAX == 0xFFFFFFFF) + #define UNITY_LONG_WIDTH (32) + #elif (ULONG_MAX == 0xFFFFFFFFFFFFFFFF) + #define UNITY_LONG_WIDTH (64) + #endif + #else /* Set to default */ + #define UNITY_LONG_WIDTH (32) + #endif /* ULONG_MAX */ +#endif + +/* Determine the size of a pointer, if not already specified. */ +#ifndef UNITY_POINTER_WIDTH + #ifdef UINTPTR_MAX + #if (UINTPTR_MAX <= 0xFFFF) + #define UNITY_POINTER_WIDTH (16) + #elif (UINTPTR_MAX <= 0xFFFFFFFF) + #define UNITY_POINTER_WIDTH (32) + #elif (UINTPTR_MAX <= 0xFFFFFFFFFFFFFFFF) + #define UNITY_POINTER_WIDTH (64) + #endif + #else /* Set to default */ + #define UNITY_POINTER_WIDTH UNITY_LONG_WIDTH + #endif /* UINTPTR_MAX */ +#endif + +/*------------------------------------------------------- + * Int Support (Define types based on detected sizes) + *-------------------------------------------------------*/ + +#if (UNITY_INT_WIDTH == 32) + typedef unsigned char UNITY_UINT8; + typedef unsigned short UNITY_UINT16; + typedef unsigned int UNITY_UINT32; + typedef signed char UNITY_INT8; + typedef signed short UNITY_INT16; + typedef signed int UNITY_INT32; +#elif (UNITY_INT_WIDTH == 16) + typedef unsigned char UNITY_UINT8; + typedef unsigned int UNITY_UINT16; + typedef unsigned long UNITY_UINT32; + typedef signed char UNITY_INT8; + typedef signed int UNITY_INT16; + typedef signed long UNITY_INT32; +#else + #error Invalid UNITY_INT_WIDTH specified! (16 or 32 are supported) +#endif + +/*------------------------------------------------------- + * 64-bit Support + *-------------------------------------------------------*/ + +/* Auto-detect 64 Bit Support */ +#ifndef UNITY_SUPPORT_64 + #if UNITY_LONG_WIDTH == 64 || UNITY_POINTER_WIDTH == 64 + #define UNITY_SUPPORT_64 + #endif +#endif + +/* 64-Bit Support Dependent Configuration */ +#ifndef UNITY_SUPPORT_64 + /* No 64-bit Support */ + typedef UNITY_UINT32 UNITY_UINT; + typedef UNITY_INT32 UNITY_INT; + #define UNITY_MAX_NIBBLES (8) /* Maximum number of nibbles in a UNITY_(U)INT */ +#else + /* 64-bit Support */ + #if (UNITY_LONG_WIDTH == 32) + typedef unsigned long long UNITY_UINT64; + typedef signed long long UNITY_INT64; + #elif (UNITY_LONG_WIDTH == 64) + typedef unsigned long UNITY_UINT64; + typedef signed long UNITY_INT64; + #else + #error Invalid UNITY_LONG_WIDTH specified! (32 or 64 are supported) + #endif + typedef UNITY_UINT64 UNITY_UINT; + typedef UNITY_INT64 UNITY_INT; + #define UNITY_MAX_NIBBLES (16) /* Maximum number of nibbles in a UNITY_(U)INT */ +#endif + +/*------------------------------------------------------- + * Pointer Support + *-------------------------------------------------------*/ + +#if (UNITY_POINTER_WIDTH == 32) + #define UNITY_PTR_TO_INT UNITY_INT32 + #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32 +#elif (UNITY_POINTER_WIDTH == 64) + #define UNITY_PTR_TO_INT UNITY_INT64 + #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64 +#elif (UNITY_POINTER_WIDTH == 16) + #define UNITY_PTR_TO_INT UNITY_INT16 + #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX16 +#else + #error Invalid UNITY_POINTER_WIDTH specified! (16, 32 or 64 are supported) +#endif + +#ifndef UNITY_PTR_ATTRIBUTE + #define UNITY_PTR_ATTRIBUTE +#endif + +#ifndef UNITY_INTERNAL_PTR + #define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const void* +#endif + +/* optionally define UNITY_COMPARE_PTRS_ON_ZERO_ARRAY */ + +/*------------------------------------------------------- + * Float Support + *-------------------------------------------------------*/ + +#ifdef UNITY_EXCLUDE_FLOAT + +/* No Floating Point Support */ +#ifndef UNITY_EXCLUDE_DOUBLE +#define UNITY_EXCLUDE_DOUBLE /* Remove double when excluding float support */ +#endif +#ifndef UNITY_EXCLUDE_FLOAT_PRINT +#define UNITY_EXCLUDE_FLOAT_PRINT +#endif + +#else + +/* Floating Point Support */ +#ifndef UNITY_FLOAT_PRECISION +#define UNITY_FLOAT_PRECISION (0.00001f) +#endif +#ifndef UNITY_FLOAT_TYPE +#define UNITY_FLOAT_TYPE float +#endif +typedef UNITY_FLOAT_TYPE UNITY_FLOAT; + +/* isnan macro should be provided by math.h. Override if not macro */ +#ifndef UNITY_IS_NAN +#ifndef isnan +/* NaN is the only floating point value that does NOT equal itself. + * Therefore if n != n, then it is NaN. */ +#define UNITY_IS_NAN(n) ((n != n) ? 1 : 0) +#else +#define UNITY_IS_NAN(n) isnan(n) +#endif +#endif + +/* isinf macro should be provided by math.h. Override if not macro */ +#ifndef UNITY_IS_INF +#ifndef isinf +/* The value of Inf - Inf is NaN */ +#define UNITY_IS_INF(n) (UNITY_IS_NAN((n) - (n)) && !UNITY_IS_NAN(n)) +#else +#define UNITY_IS_INF(n) isinf(n) +#endif +#endif + +#endif + +/*------------------------------------------------------- + * Double Float Support + *-------------------------------------------------------*/ + +/* unlike float, we DON'T include by default */ +#if defined(UNITY_EXCLUDE_DOUBLE) || !defined(UNITY_INCLUDE_DOUBLE) + + /* No Floating Point Support */ + #ifndef UNITY_EXCLUDE_DOUBLE + #define UNITY_EXCLUDE_DOUBLE + #else + #undef UNITY_INCLUDE_DOUBLE + #endif + + #ifndef UNITY_EXCLUDE_FLOAT + #ifndef UNITY_DOUBLE_TYPE + #define UNITY_DOUBLE_TYPE double + #endif + typedef UNITY_FLOAT UNITY_DOUBLE; + /* For parameter in UnityPrintFloat(UNITY_DOUBLE), which aliases to double or float */ + #endif + +#else + + /* Double Floating Point Support */ + #ifndef UNITY_DOUBLE_PRECISION + #define UNITY_DOUBLE_PRECISION (1e-12) + #endif + + #ifndef UNITY_DOUBLE_TYPE + #define UNITY_DOUBLE_TYPE double + #endif + typedef UNITY_DOUBLE_TYPE UNITY_DOUBLE; + +#endif + +/*------------------------------------------------------- + * Output Method: stdout (DEFAULT) + *-------------------------------------------------------*/ +#ifndef UNITY_OUTPUT_CHAR + /* Default to using putchar, which is defined in stdio.h */ + #include + #define UNITY_OUTPUT_CHAR(a) (void)putchar(a) +#else + /* If defined as something else, make sure we declare it here so it's ready for use */ + #ifdef UNITY_OUTPUT_CHAR_HEADER_DECLARATION + extern void UNITY_OUTPUT_CHAR_HEADER_DECLARATION; + #endif +#endif + +#ifndef UNITY_OUTPUT_FLUSH + #ifdef UNITY_USE_FLUSH_STDOUT + /* We want to use the stdout flush utility */ + #include + #define UNITY_OUTPUT_FLUSH() (void)fflush(stdout) + #else + /* We've specified nothing, therefore flush should just be ignored */ + #define UNITY_OUTPUT_FLUSH() (void)0 + #endif +#else + /* If defined as something else, make sure we declare it here so it's ready for use */ + #ifdef UNITY_OUTPUT_FLUSH_HEADER_DECLARATION + extern void UNITY_OUTPUT_FLUSH_HEADER_DECLARATION; + #endif +#endif + +#ifndef UNITY_OUTPUT_FLUSH +#define UNITY_FLUSH_CALL() +#else +#define UNITY_FLUSH_CALL() UNITY_OUTPUT_FLUSH() +#endif + +#ifndef UNITY_PRINT_EOL +#define UNITY_PRINT_EOL() UNITY_OUTPUT_CHAR('\n') +#endif + +#ifndef UNITY_OUTPUT_START +#define UNITY_OUTPUT_START() +#endif + +#ifndef UNITY_OUTPUT_COMPLETE +#define UNITY_OUTPUT_COMPLETE() +#endif + +#ifdef UNITY_INCLUDE_EXEC_TIME + #if !defined(UNITY_EXEC_TIME_START) && \ + !defined(UNITY_EXEC_TIME_STOP) && \ + !defined(UNITY_PRINT_EXEC_TIME) && \ + !defined(UNITY_TIME_TYPE) + /* If none any of these macros are defined then try to provide a default implementation */ + + #if defined(UNITY_CLOCK_MS) + /* This is a simple way to get a default implementation on platforms that support getting a millisecond counter */ + #define UNITY_TIME_TYPE UNITY_UINT + #define UNITY_EXEC_TIME_START() Unity.CurrentTestStartTime = UNITY_CLOCK_MS() + #define UNITY_EXEC_TIME_STOP() Unity.CurrentTestStopTime = UNITY_CLOCK_MS() + #define UNITY_PRINT_EXEC_TIME() { \ + UNITY_UINT execTimeMs = (Unity.CurrentTestStopTime - Unity.CurrentTestStartTime); \ + UnityPrint(" ("); \ + UnityPrintNumberUnsigned(execTimeMs); \ + UnityPrint(" ms)"); \ + } + #elif defined(_WIN32) + #include + #define UNITY_TIME_TYPE clock_t + #define UNITY_GET_TIME(t) t = (clock_t)((clock() * 1000) / CLOCKS_PER_SEC) + #define UNITY_EXEC_TIME_START() UNITY_GET_TIME(Unity.CurrentTestStartTime) + #define UNITY_EXEC_TIME_STOP() UNITY_GET_TIME(Unity.CurrentTestStopTime) + #define UNITY_PRINT_EXEC_TIME() { \ + UNITY_UINT execTimeMs = (Unity.CurrentTestStopTime - Unity.CurrentTestStartTime); \ + UnityPrint(" ("); \ + UnityPrintNumberUnsigned(execTimeMs); \ + UnityPrint(" ms)"); \ + } + #elif defined(__unix__) || defined(__APPLE__) + #include + #define UNITY_TIME_TYPE struct timespec + #define UNITY_GET_TIME(t) clock_gettime(CLOCK_MONOTONIC, &t) + #define UNITY_EXEC_TIME_START() UNITY_GET_TIME(Unity.CurrentTestStartTime) + #define UNITY_EXEC_TIME_STOP() UNITY_GET_TIME(Unity.CurrentTestStopTime) + #define UNITY_PRINT_EXEC_TIME() { \ + UNITY_UINT execTimeMs = ((Unity.CurrentTestStopTime.tv_sec - Unity.CurrentTestStartTime.tv_sec) * 1000L); \ + execTimeMs += ((Unity.CurrentTestStopTime.tv_nsec - Unity.CurrentTestStartTime.tv_nsec) / 1000000L); \ + UnityPrint(" ("); \ + UnityPrintNumberUnsigned(execTimeMs); \ + UnityPrint(" ms)"); \ + } + #endif + #endif +#endif + +#ifndef UNITY_EXEC_TIME_START +#define UNITY_EXEC_TIME_START() do { /* nothing*/ } while (0) +#endif + +#ifndef UNITY_EXEC_TIME_STOP +#define UNITY_EXEC_TIME_STOP() do { /* nothing*/ } while (0) +#endif + +#ifndef UNITY_TIME_TYPE +#define UNITY_TIME_TYPE UNITY_UINT +#endif + +#ifndef UNITY_PRINT_EXEC_TIME +#define UNITY_PRINT_EXEC_TIME() do { /* nothing*/ } while (0) +#endif + +/*------------------------------------------------------- + * Footprint + *-------------------------------------------------------*/ + +#ifndef UNITY_LINE_TYPE +#define UNITY_LINE_TYPE UNITY_UINT +#endif + +#ifndef UNITY_COUNTER_TYPE +#define UNITY_COUNTER_TYPE UNITY_UINT +#endif + +/*------------------------------------------------------- + * Internal Structs Needed + *-------------------------------------------------------*/ + +typedef void (*UnityTestFunction)(void); + +#define UNITY_DISPLAY_RANGE_INT (0x10) +#define UNITY_DISPLAY_RANGE_UINT (0x20) +#define UNITY_DISPLAY_RANGE_HEX (0x40) +#define UNITY_DISPLAY_RANGE_CHAR (0x80) + +typedef enum +{ + UNITY_DISPLAY_STYLE_INT = (UNITY_INT_WIDTH / 8) + UNITY_DISPLAY_RANGE_INT, + UNITY_DISPLAY_STYLE_INT8 = 1 + UNITY_DISPLAY_RANGE_INT, + UNITY_DISPLAY_STYLE_INT16 = 2 + UNITY_DISPLAY_RANGE_INT, + UNITY_DISPLAY_STYLE_INT32 = 4 + UNITY_DISPLAY_RANGE_INT, +#ifdef UNITY_SUPPORT_64 + UNITY_DISPLAY_STYLE_INT64 = 8 + UNITY_DISPLAY_RANGE_INT, +#endif + + UNITY_DISPLAY_STYLE_UINT = (UNITY_INT_WIDTH / 8) + UNITY_DISPLAY_RANGE_UINT, + UNITY_DISPLAY_STYLE_UINT8 = 1 + UNITY_DISPLAY_RANGE_UINT, + UNITY_DISPLAY_STYLE_UINT16 = 2 + UNITY_DISPLAY_RANGE_UINT, + UNITY_DISPLAY_STYLE_UINT32 = 4 + UNITY_DISPLAY_RANGE_UINT, +#ifdef UNITY_SUPPORT_64 + UNITY_DISPLAY_STYLE_UINT64 = 8 + UNITY_DISPLAY_RANGE_UINT, +#endif + + UNITY_DISPLAY_STYLE_HEX8 = 1 + UNITY_DISPLAY_RANGE_HEX, + UNITY_DISPLAY_STYLE_HEX16 = 2 + UNITY_DISPLAY_RANGE_HEX, + UNITY_DISPLAY_STYLE_HEX32 = 4 + UNITY_DISPLAY_RANGE_HEX, +#ifdef UNITY_SUPPORT_64 + UNITY_DISPLAY_STYLE_HEX64 = 8 + UNITY_DISPLAY_RANGE_HEX, +#endif + + UNITY_DISPLAY_STYLE_CHAR = 1 + UNITY_DISPLAY_RANGE_CHAR + UNITY_DISPLAY_RANGE_INT, + + UNITY_DISPLAY_STYLE_UNKNOWN +} UNITY_DISPLAY_STYLE_T; + +typedef enum +{ + UNITY_WITHIN = 0x0, + UNITY_EQUAL_TO = 0x1, + UNITY_GREATER_THAN = 0x2, + UNITY_GREATER_OR_EQUAL = 0x2 + UNITY_EQUAL_TO, + UNITY_SMALLER_THAN = 0x4, + UNITY_SMALLER_OR_EQUAL = 0x4 + UNITY_EQUAL_TO, + UNITY_NOT_EQUAL = 0x0, + UNITY_UNKNOWN +} UNITY_COMPARISON_T; + +#ifndef UNITY_EXCLUDE_FLOAT +typedef enum UNITY_FLOAT_TRAIT +{ + UNITY_FLOAT_IS_NOT_INF = 0, + UNITY_FLOAT_IS_INF, + UNITY_FLOAT_IS_NOT_NEG_INF, + UNITY_FLOAT_IS_NEG_INF, + UNITY_FLOAT_IS_NOT_NAN, + UNITY_FLOAT_IS_NAN, + UNITY_FLOAT_IS_NOT_DET, + UNITY_FLOAT_IS_DET, + UNITY_FLOAT_INVALID_TRAIT +} UNITY_FLOAT_TRAIT_T; +#endif + +typedef enum +{ + UNITY_ARRAY_TO_VAL = 0, + UNITY_ARRAY_TO_ARRAY, + UNITY_ARRAY_UNKNOWN +} UNITY_FLAGS_T; + +struct UNITY_STORAGE_T +{ + const char* TestFile; + const char* CurrentTestName; +#ifndef UNITY_EXCLUDE_DETAILS + const char* CurrentDetail1; + const char* CurrentDetail2; +#endif + UNITY_LINE_TYPE CurrentTestLineNumber; + UNITY_COUNTER_TYPE NumberOfTests; + UNITY_COUNTER_TYPE TestFailures; + UNITY_COUNTER_TYPE TestIgnores; + UNITY_COUNTER_TYPE CurrentTestFailed; + UNITY_COUNTER_TYPE CurrentTestIgnored; +#ifdef UNITY_INCLUDE_EXEC_TIME + UNITY_TIME_TYPE CurrentTestStartTime; + UNITY_TIME_TYPE CurrentTestStopTime; +#endif +#ifndef UNITY_EXCLUDE_SETJMP_H + jmp_buf AbortFrame; +#endif +}; + +extern struct UNITY_STORAGE_T Unity; + +/*------------------------------------------------------- + * Test Suite Management + *-------------------------------------------------------*/ + +void UnityBegin(const char* filename); +int UnityEnd(void); +void UnitySetTestFile(const char* filename); +void UnityConcludeTest(void); + +#ifndef RUN_TEST +void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum); +#else +#define UNITY_SKIP_DEFAULT_RUNNER +#endif + +/*------------------------------------------------------- + * Details Support + *-------------------------------------------------------*/ + +#ifdef UNITY_EXCLUDE_DETAILS +#define UNITY_CLR_DETAILS() +#define UNITY_SET_DETAIL(d1) +#define UNITY_SET_DETAILS(d1,d2) +#else +#define UNITY_CLR_DETAILS() do { Unity.CurrentDetail1 = 0; Unity.CurrentDetail2 = 0; } while (0) +#define UNITY_SET_DETAIL(d1) do { Unity.CurrentDetail1 = (d1); Unity.CurrentDetail2 = 0; } while (0) +#define UNITY_SET_DETAILS(d1,d2) do { Unity.CurrentDetail1 = (d1); Unity.CurrentDetail2 = (d2); } while (0) + +#ifndef UNITY_DETAIL1_NAME +#define UNITY_DETAIL1_NAME "Function" +#endif + +#ifndef UNITY_DETAIL2_NAME +#define UNITY_DETAIL2_NAME "Argument" +#endif +#endif + +#ifdef UNITY_PRINT_TEST_CONTEXT +void UNITY_PRINT_TEST_CONTEXT(void); +#endif + +/*------------------------------------------------------- + * Test Output + *-------------------------------------------------------*/ + +void UnityPrint(const char* string); + +#ifdef UNITY_INCLUDE_PRINT_FORMATTED +void UnityPrintF(const UNITY_LINE_TYPE line, const char* format, ...); +#endif + +void UnityPrintLen(const char* string, const UNITY_UINT32 length); +void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number); +void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style); +void UnityPrintNumber(const UNITY_INT number_to_print); +void UnityPrintNumberUnsigned(const UNITY_UINT number); +void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print); + +#ifndef UNITY_EXCLUDE_FLOAT_PRINT +void UnityPrintFloat(const UNITY_DOUBLE input_number); +#endif + +/*------------------------------------------------------- + * Test Assertion Functions + *------------------------------------------------------- + * Use the macros below this section instead of calling + * these directly. The macros have a consistent naming + * convention and will pull in file and line information + * for you. */ + +void UnityAssertEqualNumber(const UNITY_INT expected, + const UNITY_INT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style); + +void UnityAssertGreaterOrLessOrEqualNumber(const UNITY_INT threshold, + const UNITY_INT actual, + const UNITY_COMPARISON_T compare, + const char *msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style); + +void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style, + const UNITY_FLAGS_T flags); + +void UnityAssertBits(const UNITY_INT mask, + const UNITY_INT expected, + const UNITY_INT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertEqualString(const char* expected, + const char* actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertEqualStringLen(const char* expected, + const char* actual, + const UNITY_UINT32 length, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertEqualStringArray( UNITY_INTERNAL_PTR expected, + const char** actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags); + +void UnityAssertEqualMemory( UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_UINT32 length, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags); + +void UnityAssertNumbersWithin(const UNITY_UINT delta, + const UNITY_INT expected, + const UNITY_INT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style); + +void UnityAssertNumbersArrayWithin(const UNITY_UINT delta, + UNITY_INTERNAL_PTR expected, + UNITY_INTERNAL_PTR actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_DISPLAY_STYLE_T style, + const UNITY_FLAGS_T flags); + +#ifndef UNITY_EXCLUDE_SETJMP_H +UNITY_NORETURN void UnityFail(const char* message, const UNITY_LINE_TYPE line); +UNITY_NORETURN void UnityIgnore(const char* message, const UNITY_LINE_TYPE line); +#else +void UnityFail(const char* message, const UNITY_LINE_TYPE line); +void UnityIgnore(const char* message, const UNITY_LINE_TYPE line); +#endif + +void UnityMessage(const char* message, const UNITY_LINE_TYPE line); + +#ifndef UNITY_EXCLUDE_FLOAT +void UnityAssertFloatsWithin(const UNITY_FLOAT delta, + const UNITY_FLOAT expected, + const UNITY_FLOAT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertFloatsNotWithin(const UNITY_FLOAT delta, + const UNITY_FLOAT expected, + const UNITY_FLOAT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertGreaterOrLessFloat(const UNITY_FLOAT threshold, + const UNITY_FLOAT actual, + const UNITY_COMPARISON_T compare, + const char* msg, + const UNITY_LINE_TYPE linenumber); + +void UnityAssertWithinFloatArray(const UNITY_FLOAT delta, + UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected, + UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags); + +void UnityAssertFloatSpecial(const UNITY_FLOAT actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLOAT_TRAIT_T style); +#endif + +#ifndef UNITY_EXCLUDE_DOUBLE +void UnityAssertDoublesWithin(const UNITY_DOUBLE delta, + const UNITY_DOUBLE expected, + const UNITY_DOUBLE actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertDoublesNotWithin(const UNITY_DOUBLE delta, + const UNITY_DOUBLE expected, + const UNITY_DOUBLE actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber); + +void UnityAssertGreaterOrLessDouble(const UNITY_DOUBLE threshold, + const UNITY_DOUBLE actual, + const UNITY_COMPARISON_T compare, + const char* msg, + const UNITY_LINE_TYPE linenumber); + +void UnityAssertWithinDoubleArray(const UNITY_DOUBLE delta, + UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expected, + UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* actual, + const UNITY_UINT32 num_elements, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLAGS_T flags); + +void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual, + const char* msg, + const UNITY_LINE_TYPE lineNumber, + const UNITY_FLOAT_TRAIT_T style); +#endif + +/*------------------------------------------------------- + * Helpers + *-------------------------------------------------------*/ + +UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size); +#ifndef UNITY_EXCLUDE_FLOAT +UNITY_INTERNAL_PTR UnityFloatToPtr(const float num); +#endif +#ifndef UNITY_EXCLUDE_DOUBLE +UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num); +#endif + +/*------------------------------------------------------- + * Error Strings We Might Need + *-------------------------------------------------------*/ + +extern const char UnityStrOk[]; +extern const char UnityStrPass[]; +extern const char UnityStrFail[]; +extern const char UnityStrIgnore[]; + +extern const char UnityStrErrFloat[]; +extern const char UnityStrErrDouble[]; +extern const char UnityStrErr64[]; +extern const char UnityStrErrShorthand[]; + +/*------------------------------------------------------- + * Test Running Macros + *-------------------------------------------------------*/ + +#ifdef UNITY_TEST_PROTECT +#define TEST_PROTECT() UNITY_TEST_PROTECT() +#else +#ifndef UNITY_EXCLUDE_SETJMP_H +#define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0) +#else +#define TEST_PROTECT() 1 +#endif +#endif + +#ifdef UNITY_TEST_ABORT +#define TEST_ABORT() UNITY_TEST_ABORT() +#else +#ifndef UNITY_EXCLUDE_SETJMP_H +#define TEST_ABORT() longjmp(Unity.AbortFrame, 1) +#else +#define TEST_ABORT() return +#endif +#endif + +/* Automatically enable variadic macros support, if it not enabled before */ +#ifndef UNITY_SUPPORT_VARIADIC_MACROS + #ifdef __STDC_VERSION__ + #if __STDC_VERSION__ >= 199901L + #define UNITY_SUPPORT_VARIADIC_MACROS + #endif + #endif +#endif + +/* This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__) */ +#ifndef RUN_TEST +#ifdef UNITY_SUPPORT_VARIADIC_MACROS +#define RUN_TEST(...) RUN_TEST_AT_LINE(__VA_ARGS__, __LINE__, throwaway) +#define RUN_TEST_AT_LINE(func, line, ...) UnityDefaultTestRun(func, #func, line) +#endif +#endif + +/* Enable default macros for masking param tests test cases */ +#ifdef UNITY_SUPPORT_TEST_CASES + #ifdef UNITY_SUPPORT_VARIADIC_MACROS + #if !defined(TEST_CASE) && !defined(UNITY_EXCLUDE_TEST_CASE) + #define TEST_CASE(...) + #endif + #if !defined(TEST_RANGE) && !defined(UNITY_EXCLUDE_TEST_RANGE) + #define TEST_RANGE(...) + #endif + #if !defined(TEST_MATRIX) && !defined(UNITY_EXCLUDE_TEST_MATRIX) + #define TEST_MATRIX(...) + #endif + #endif +#endif + +/* If we can't do the tricky version, we'll just have to require them to always include the line number */ +#ifndef RUN_TEST +#ifdef CMOCK +#define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num) +#else +#define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__) +#endif +#endif + +#define TEST_LINE_NUM (Unity.CurrentTestLineNumber) +#define TEST_IS_IGNORED (Unity.CurrentTestIgnored) +#define UNITY_NEW_TEST(a) \ + Unity.CurrentTestName = (a); \ + Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \ + Unity.NumberOfTests++; + +#ifndef UNITY_BEGIN +#define UNITY_BEGIN() UnityBegin(__FILE__) +#endif + +#ifndef UNITY_END +#define UNITY_END() UnityEnd() +#endif + +#ifndef UNITY_SHORTHAND_AS_INT +#ifndef UNITY_SHORTHAND_AS_MEM +#ifndef UNITY_SHORTHAND_AS_NONE +#ifndef UNITY_SHORTHAND_AS_RAW +#define UNITY_SHORTHAND_AS_OLD +#endif +#endif +#endif +#endif + +/*----------------------------------------------- + * Command Line Argument Support + *-----------------------------------------------*/ + +#ifdef UNITY_USE_COMMAND_LINE_ARGS +int UnityParseOptions(int argc, char** argv); +int UnityTestMatches(void); +#endif + +/*------------------------------------------------------- + * Basic Fail and Ignore + *-------------------------------------------------------*/ + +#define UNITY_TEST_FAIL(line, message) UnityFail( (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_IGNORE(line, message) UnityIgnore( (message), (UNITY_LINE_TYPE)(line)) + +/*------------------------------------------------------- + * Test Asserts + *-------------------------------------------------------*/ + +#define UNITY_TEST_ASSERT(condition, line, message) do { if (condition) { /* nothing*/ } else { UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), (message)); } } while (0) +#define UNITY_TEST_ASSERT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) == NULL), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_EMPTY(pointer, line, message) UNITY_TEST_ASSERT(((pointer[0]) == 0), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_NOT_EMPTY(pointer, line, message) UNITY_TEST_ASSERT(((pointer[0]) != 0), (UNITY_LINE_TYPE)(line), (message)) + +#define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )(expected), (UNITY_INT)(UNITY_INT8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT16)(expected), (UNITY_INT)(UNITY_INT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT32)(expected), (UNITY_INT)(UNITY_INT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT8 )(expected), (UNITY_INT)(UNITY_UINT8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT16)(expected), (UNITY_INT)(UNITY_UINT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT32)(expected), (UNITY_INT)(UNITY_UINT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )(expected), (UNITY_INT)(UNITY_INT8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT16)(expected), (UNITY_INT)(UNITY_INT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT32)(expected), (UNITY_INT)(UNITY_INT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_EQUAL_CHAR(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )(expected), (UNITY_INT)(UNITY_INT8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) +#define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message) UnityAssertBits((UNITY_INT)(mask), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line)) + +#define UNITY_TEST_ASSERT_NOT_EQUAL_INT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_NOT_EQUAL_INT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 )(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_NOT_EQUAL_INT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_NOT_EQUAL_INT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_NOT_EQUAL_CHAR(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 )(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) + +#define UNITY_TEST_ASSERT_GREATER_THAN_INT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_GREATER_THAN_INT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 )(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_GREATER_THAN_INT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_GREATER_THAN_INT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_GREATER_THAN_UINT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_GREATER_THAN_UINT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_GREATER_THAN_UINT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_GREATER_THAN_UINT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_GREATER_THAN_HEX8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_GREATER_THAN_HEX16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_GREATER_THAN_HEX32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_GREATER_THAN_CHAR(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 )(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) + +#define UNITY_TEST_ASSERT_SMALLER_THAN_INT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_SMALLER_THAN_INT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 )(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_SMALLER_THAN_INT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_SMALLER_THAN_INT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_SMALLER_THAN_CHAR(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 )(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) + +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT) (threshold), (UNITY_INT) (actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 ) (threshold), (UNITY_INT)(UNITY_INT8 ) (actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16) (threshold), (UNITY_INT)(UNITY_INT16) (actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32) (threshold), (UNITY_INT)(UNITY_INT32) (actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT) (threshold), (UNITY_INT) (actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 ) (threshold), (UNITY_INT)(UNITY_INT8 ) (actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) + +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT) (threshold), (UNITY_INT) (actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 ) (actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16) (actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32) (actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT) (threshold), (UNITY_INT) (actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8 )(threshold), (UNITY_INT)(UNITY_UINT8 )(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8 )(threshold), (UNITY_INT)(UNITY_INT8 ) (actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) + +#define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin( (delta), (UNITY_INT) (expected), (UNITY_INT) (actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) +#define UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT8 )(delta), (UNITY_INT)(UNITY_INT8 ) (expected), (UNITY_INT)(UNITY_INT8 ) (actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) +#define UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT16)(delta), (UNITY_INT)(UNITY_INT16) (expected), (UNITY_INT)(UNITY_INT16) (actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) +#define UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT32)(delta), (UNITY_INT)(UNITY_INT32) (expected), (UNITY_INT)(UNITY_INT32) (actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) +#define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin( (delta), (UNITY_INT) (expected), (UNITY_INT) (actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) +#define UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT8 )(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8 )(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) +#define UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT16)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) +#define UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT32)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) +#define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT8 )(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8 )(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) +#define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT16)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) +#define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT32)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) +#define UNITY_TEST_ASSERT_CHAR_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((UNITY_UINT8 )(delta), (UNITY_INT)(UNITY_INT8 ) (expected), (UNITY_INT)(UNITY_INT8 ) (actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) + +#define UNITY_TEST_ASSERT_INT_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin( (delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT8 )(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin( (delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT8 )(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT8 )(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT8 )(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR, UNITY_ARRAY_TO_ARRAY) + + +#define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) UnityAssertEqualNumber((UNITY_PTR_TO_INT)(expected), (UNITY_PTR_TO_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER) +#define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, line, message) UnityAssertEqualStringLen((const char*)(expected), (const char*)(actual), (UNITY_UINT32)(len), (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(len), 1, (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) + +#define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualStringArray((UNITY_INTERNAL_PTR)(expected), (const char**)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, line, message) UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(len), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR, UNITY_ARRAY_TO_ARRAY) + +#define UNITY_TEST_ASSERT_EACH_EQUAL_INT(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT) (expected), (UNITY_INT_WIDTH / 8)), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_INT8(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT8 )(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_INT16(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT16 )(expected), 2), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT32 )(expected), 4), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT) (expected), (UNITY_INT_WIDTH / 8)), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT8(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT8 )(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT16(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT16)(expected), 2), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT32(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT32)(expected), 4), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX8(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT8 )(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX16(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT16 )(expected), 2), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX32(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT32 )(expected), 4), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_PTR(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_PTR_TO_INT) (expected), (UNITY_POINTER_WIDTH / 8)), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_STRING(expected, actual, num_elements, line, message) UnityAssertEqualStringArray((UNITY_INTERNAL_PTR)(expected), (const char**)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY(expected, actual, len, num_elements, line, message) UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(len), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_CHAR(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT8 )(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR, UNITY_ARRAY_TO_VAL) + +#ifdef UNITY_SUPPORT_64 +#define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EACH_EQUAL_INT64(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT64)(expected), 8), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT64(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT64)(expected), 8), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX64(expected, actual, num_elements, line, message) UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT64)(expected), 8), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64, UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_NOT_EQUAL_INT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_GREATER_THAN_INT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_SMALLER_THAN_INT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64(threshold, actual, line, message) UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) +#define UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertNumbersArrayWithin((UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64, UNITY_ARRAY_TO_ARRAY) +#else +#define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_GREATER_THAN_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_SMALLER_THAN_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#define UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) +#endif + +#ifdef UNITY_EXCLUDE_FLOAT +#define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_NOT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_NOT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_GREATER_THAN_FLOAT(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_LESS_THAN_FLOAT(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_LESS_OR_EQUAL_FLOAT(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) +#else +#define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UnityAssertFloatsWithin((UNITY_FLOAT)(delta), (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_FLOAT_NOT_WITHIN(delta, expected, actual, line, message) UnityAssertFloatsNotWithin((UNITY_FLOAT)(delta), (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((UNITY_FLOAT)(expected) * (UNITY_FLOAT)UNITY_FLOAT_PRECISION, (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_NOT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_ASSERT_FLOAT_NOT_WITHIN((UNITY_FLOAT)(expected) * (UNITY_FLOAT)UNITY_FLOAT_PRECISION, (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertWithinFloatArray((UNITY_FLOAT)(delta), (const UNITY_FLOAT*)(expected), (const UNITY_FLOAT*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UnityAssertWithinFloatArray((UNITY_FLOAT)0, (const UNITY_FLOAT*)(expected), (const UNITY_FLOAT*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements, line, message) UnityAssertWithinFloatArray((UNITY_FLOAT)0, UnityFloatToPtr(expected), (const UNITY_FLOAT*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_GREATER_THAN_FLOAT(threshold, actual, line, message) UnityAssertGreaterOrLessFloat((UNITY_FLOAT)(threshold), (UNITY_FLOAT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(threshold, actual, line, message) UnityAssertGreaterOrLessFloat((UNITY_FLOAT)(threshold), (UNITY_FLOAT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_LESS_THAN_FLOAT(threshold, actual, line, message) UnityAssertGreaterOrLessFloat((UNITY_FLOAT)(threshold), (UNITY_FLOAT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_LESS_OR_EQUAL_FLOAT(threshold, actual, line, message) UnityAssertGreaterOrLessFloat((UNITY_FLOAT)(threshold), (UNITY_FLOAT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) +#define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) +#define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) +#define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) +#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) +#endif + +#ifdef UNITY_EXCLUDE_DOUBLE +#define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_NOT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_NOT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_GREATER_THAN_DOUBLE(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_LESS_THAN_DOUBLE(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_LESS_OR_EQUAL_DOUBLE(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) +#else +#define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UnityAssertDoublesWithin((UNITY_DOUBLE)(delta), (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_DOUBLE_NOT_WITHIN(delta, expected, actual, line, message) UnityAssertDoublesNotWithin((UNITY_DOUBLE)(delta), (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((UNITY_DOUBLE)(expected) * (UNITY_DOUBLE)UNITY_DOUBLE_PRECISION, (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_NOT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_ASSERT_DOUBLE_NOT_WITHIN((UNITY_DOUBLE)(expected) * (UNITY_DOUBLE)UNITY_DOUBLE_PRECISION, (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), (UNITY_LINE_TYPE)(line), (message)) +#define UNITY_TEST_ASSERT_DOUBLE_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UnityAssertWithinDoubleArray((UNITY_DOUBLE)(delta), (const UNITY_DOUBLE*)(expected), (const UNITY_DOUBLE*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UnityAssertWithinDoubleArray((UNITY_DOUBLE)0, (const UNITY_DOUBLE*)(expected), (const UNITY_DOUBLE*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) +#define UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements, line, message) UnityAssertWithinDoubleArray((UNITY_DOUBLE)0, UnityDoubleToPtr(expected), (const UNITY_DOUBLE*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) +#define UNITY_TEST_ASSERT_GREATER_THAN_DOUBLE(threshold, actual, line, message) UnityAssertGreaterOrLessDouble((UNITY_DOUBLE)(threshold), (UNITY_DOUBLE)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE(threshold, actual, line, message) UnityAssertGreaterOrLessDouble((UNITY_DOUBLE)(threshold), (UNITY_DOUBLE)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_LESS_THAN_DOUBLE(threshold, actual, line, message) UnityAssertGreaterOrLessDouble((UNITY_DOUBLE)(threshold), (UNITY_DOUBLE)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_LESS_OR_EQUAL_DOUBLE(threshold, actual, line, message) UnityAssertGreaterOrLessDouble((UNITY_DOUBLE)(threshold), (UNITY_DOUBLE)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line)) +#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) +#define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) +#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) +#endif + +/* End of UNITY_INTERNALS_H */ +#endif + +/* === END inlined unity_internals.h === */ + +/*------------------------------------------------------- + * Test Setup / Teardown + *-------------------------------------------------------*/ + +/* These functions are intended to be called before and after each test. + * If using unity directly, these will need to be provided for each test + * executable built. If you are using the test runner generator and/or + * Ceedling, these are optional. */ +void setUp(void); +void tearDown(void); + +/* These functions are intended to be called at the beginning and end of an + * entire test suite. suiteTearDown() is passed the number of tests that + * failed, and its return value becomes the exit code of main(). If using + * Unity directly, you're in charge of calling these if they are desired. + * If using Ceedling or the test runner generator, these will be called + * automatically if they exist. */ +void suiteSetUp(void); +int suiteTearDown(int num_failures); + +/*------------------------------------------------------- + * Test Reset and Verify + *-------------------------------------------------------*/ + +/* These functions are intended to be called before during tests in order + * to support complex test loops, etc. Both are NOT built into Unity. Instead + * the test runner generator will create them. resetTest will run teardown and + * setup again, verifying any end-of-test needs between. verifyTest will only + * run the verification. */ +void resetTest(void); +void verifyTest(void); + +/*------------------------------------------------------- + * Configuration Options + *------------------------------------------------------- + * All options described below should be passed as a compiler flag to all files using Unity. If you must add #defines, place them BEFORE the #include above. + + * Integers/longs/pointers + * - Unity attempts to automatically discover your integer sizes + * - define UNITY_EXCLUDE_STDINT_H to stop attempting to look in + * - define UNITY_EXCLUDE_LIMITS_H to stop attempting to look in + * - If you cannot use the automatic methods above, you can force Unity by using these options: + * - define UNITY_SUPPORT_64 + * - set UNITY_INT_WIDTH + * - set UNITY_LONG_WIDTH + * - set UNITY_POINTER_WIDTH + + * Floats + * - define UNITY_EXCLUDE_FLOAT to disallow floating point comparisons + * - define UNITY_FLOAT_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_FLOAT + * - define UNITY_FLOAT_TYPE to specify doubles instead of single precision floats + * - define UNITY_INCLUDE_DOUBLE to allow double floating point comparisons + * - define UNITY_EXCLUDE_DOUBLE to disallow double floating point comparisons (default) + * - define UNITY_DOUBLE_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_DOUBLE + * - define UNITY_DOUBLE_TYPE to specify something other than double + * - define UNITY_EXCLUDE_FLOAT_PRINT to trim binary size, won't print floating point values in errors + + * Output + * - by default, Unity prints to standard out with putchar. define UNITY_OUTPUT_CHAR(a) with a different function if desired + * - define UNITY_DIFFERENTIATE_FINAL_FAIL to print FAILED (vs. FAIL) at test end summary - for automated search for failure + + * Optimization + * - by default, line numbers are stored in unsigned shorts. Define UNITY_LINE_TYPE with a different type if your files are huge + * - by default, test and failure counters are unsigned shorts. Define UNITY_COUNTER_TYPE with a different type if you want to save space or have more than 65535 Tests. + + * Test Cases + * - define UNITY_SUPPORT_TEST_CASES to include the TEST_CASE macro, though really it's mostly about the runner generator script + + * Parameterized Tests + * - you'll want to create a define of TEST_CASE(...), TEST_RANGE(...) and/or TEST_MATRIX(...) which basically evaluates to nothing + + * Tests with Arguments + * - you'll want to define UNITY_USE_COMMAND_LINE_ARGS if you have the test runner passing arguments to Unity + + *------------------------------------------------------- + * Basic Fail and Ignore + *-------------------------------------------------------*/ + +#define TEST_FAIL_MESSAGE(message) UNITY_TEST_FAIL(__LINE__, (message)) +#define TEST_FAIL() UNITY_TEST_FAIL(__LINE__, NULL) +#define TEST_IGNORE_MESSAGE(message) UNITY_TEST_IGNORE(__LINE__, (message)) +#define TEST_IGNORE() UNITY_TEST_IGNORE(__LINE__, NULL) +#define TEST_MESSAGE(message) UnityMessage((message), __LINE__) +#define TEST_ONLY() +#ifdef UNITY_INCLUDE_PRINT_FORMATTED +#define TEST_PRINTF(message, ...) UnityPrintF(__LINE__, (message), ##__VA_ARGS__) +#endif + +/* It is not necessary for you to call PASS. A PASS condition is assumed if nothing fails. + * This method allows you to abort a test immediately with a PASS state, ignoring the remainder of the test. */ +#define TEST_PASS() TEST_ABORT() +#define TEST_PASS_MESSAGE(message) do { UnityMessage((message), __LINE__); TEST_ABORT(); } while (0) + +/*------------------------------------------------------- + * Build Directives + *------------------------------------------------------- + + * These macros do nothing, but they are useful for additional build context. + * Tools (like Ceedling) can scan for these directives and make use of them for + * per-test-executable #include search paths and linking. */ + +/* Add source files to a test executable's compilation and linking. Ex: TEST_SOURCE_FILE("sandwiches.c") */ +#define TEST_SOURCE_FILE(a) + +/* Customize #include search paths for a test executable's compilation. Ex: TEST_INCLUDE_PATH("src/module_a/inc") */ +#define TEST_INCLUDE_PATH(a) + +/*------------------------------------------------------- + * Test Asserts (simple) + *-------------------------------------------------------*/ + +/* Boolean */ +#define TEST_ASSERT(condition) UNITY_TEST_ASSERT( (condition), __LINE__, " Expression Evaluated To FALSE") +#define TEST_ASSERT_TRUE(condition) UNITY_TEST_ASSERT( (condition), __LINE__, " Expected TRUE Was FALSE") +#define TEST_ASSERT_UNLESS(condition) UNITY_TEST_ASSERT( !(condition), __LINE__, " Expression Evaluated To TRUE") +#define TEST_ASSERT_FALSE(condition) UNITY_TEST_ASSERT( !(condition), __LINE__, " Expected FALSE Was TRUE") +#define TEST_ASSERT_NULL(pointer) UNITY_TEST_ASSERT_NULL( (pointer), __LINE__, " Expected NULL") +#define TEST_ASSERT_NOT_NULL(pointer) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, " Expected Non-NULL") +#define TEST_ASSERT_EMPTY(pointer) UNITY_TEST_ASSERT_EMPTY( (pointer), __LINE__, " Expected Empty") +#define TEST_ASSERT_NOT_EMPTY(pointer) UNITY_TEST_ASSERT_NOT_EMPTY((pointer), __LINE__, " Expected Non-Empty") + +/* Integers (of all sizes) */ +#define TEST_ASSERT_EQUAL_INT(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT8( (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT16( (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT32( (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT64( (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_size_t(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX8(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX8( (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX16(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX32(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX64(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_CHAR(expected, actual) UNITY_TEST_ASSERT_EQUAL_CHAR((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_BITS(mask, expected, actual) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_BITS_HIGH(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT)(-1), (actual), __LINE__, NULL) +#define TEST_ASSERT_BITS_LOW(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT)(0), (actual), __LINE__, NULL) +#define TEST_ASSERT_BIT_HIGH(bit, actual) UNITY_TEST_ASSERT_BITS(((UNITY_UINT)1 << (bit)), (UNITY_UINT)(-1), (actual), __LINE__, NULL) +#define TEST_ASSERT_BIT_LOW(bit, actual) UNITY_TEST_ASSERT_BITS(((UNITY_UINT)1 << (bit)), (UNITY_UINT)(0), (actual), __LINE__, NULL) + +/* Integer Not Equal To (of all sizes) */ +#define TEST_ASSERT_NOT_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_CHAR((threshold), (actual), __LINE__, NULL) + +/* Integer Greater Than/ Less Than (of all sizes) */ +#define TEST_ASSERT_GREATER_THAN(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_INT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_INT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_INT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_INT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_INT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_UINT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_UINT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_UINT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_UINT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_size_t(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_HEX8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_HEX16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_HEX32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_CHAR(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_CHAR((threshold), (actual), __LINE__, NULL) + +#define TEST_ASSERT_LESS_THAN(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_INT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_INT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_INT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_INT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_INT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_UINT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_UINT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_UINT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_UINT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_UINT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_size_t(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_HEX8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_HEX16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_HEX32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_HEX64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_CHAR(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_CHAR((threshold), (actual), __LINE__, NULL) + +#define TEST_ASSERT_GREATER_OR_EQUAL(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, NULL) + +#define TEST_ASSERT_LESS_OR_EQUAL(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, NULL) + +/* Integer Ranges (of all sizes) */ +#define TEST_ASSERT_INT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_INT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT8_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_INT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT16_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_INT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT32_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_INT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT64_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_UINT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_UINT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT8_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_UINT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT16_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_UINT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT32_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_UINT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT64_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_size_t_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_HEX_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_HEX8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX8_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_HEX16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX16_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_HEX32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_HEX64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX64_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_CHAR_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_CHAR_WITHIN((delta), (expected), (actual), __LINE__, NULL) + +/* Integer Array Ranges (of all sizes) */ +#define TEST_ASSERT_INT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_INT8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_INT16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_INT32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_UINT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_UINT8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_UINT16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_UINT32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_size_t_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_HEX_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_HEX8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_HEX16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_HEX32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) +#define TEST_ASSERT_CHAR_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) + + +/* Structs and Strings */ +#define TEST_ASSERT_EQUAL_PTR(expected, actual) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_STRING(expected, actual) UNITY_TEST_ASSERT_EQUAL_STRING((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_STRING_LEN((expected), (actual), (len), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_MEMORY(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_MEMORY((expected), (actual), (len), __LINE__, NULL) + +/* Arrays */ +#define TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_size_t_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((expected), (actual), (len), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_CHAR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) + +/* Arrays Compared To Single Value */ +#define TEST_ASSERT_EACH_EQUAL_INT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_INT8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT8((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_INT16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT16((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT32((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_INT64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT64((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_UINT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_UINT8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT8((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_UINT16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT16((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_UINT32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT32((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_UINT64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT64((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_size_t(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_HEX(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_HEX8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX8((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_HEX16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX16((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_HEX32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_HEX64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX64((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_PTR(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_PTR((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_STRING(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_STRING((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_MEMORY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY((expected), (actual), (len), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_CHAR(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_CHAR((expected), (actual), (num_elements), __LINE__, NULL) + +/* Floating Point (If Enabled) */ +#define TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_FLOAT_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_NOT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_FLOAT_NOT_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_EQUAL_FLOAT((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_NOT_EQUAL_FLOAT((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_FLOAT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_FLOAT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_FLOAT(threshold, actual) UNITY_TEST_ASSERT_LESS_THAN_FLOAT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_FLOAT(threshold, actual) UNITY_TEST_ASSERT_LESS_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NAN((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_NOT_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN((actual), __LINE__, NULL) +#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE((actual), __LINE__, NULL) + +/* Double (If Enabled) */ +#define TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_NOT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_NOT_WITHIN((delta), (expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_EQUAL_DOUBLE((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_NOT_EQUAL_DOUBLE((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_DOUBLE_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE((expected), (actual), (num_elements), __LINE__, NULL) +#define TEST_ASSERT_GREATER_THAN_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_DOUBLE((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_THAN_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_LESS_THAN_DOUBLE((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_LESS_OR_EQUAL_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_LESS_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NAN((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_NOT_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN((actual), __LINE__, NULL) +#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE((actual), __LINE__, NULL) + +/* Shorthand */ +#ifdef UNITY_SHORTHAND_AS_OLD +#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal") +#endif +#ifdef UNITY_SHORTHAND_AS_INT +#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#endif +#ifdef UNITY_SHORTHAND_AS_MEM +#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_MEMORY((&expected), (&actual), sizeof(expected), __LINE__, NULL) +#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#endif +#ifdef UNITY_SHORTHAND_AS_RAW +#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) == (actual)), __LINE__, " Expected Equal") +#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal") +#endif +#ifdef UNITY_SHORTHAND_AS_NONE +#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#endif + +/*------------------------------------------------------- + * Test Asserts (with additional messages) + *-------------------------------------------------------*/ + +/* Boolean */ +#define TEST_ASSERT_MESSAGE(condition, message) UNITY_TEST_ASSERT( (condition), __LINE__, (message)) +#define TEST_ASSERT_TRUE_MESSAGE(condition, message) UNITY_TEST_ASSERT( (condition), __LINE__, (message)) +#define TEST_ASSERT_UNLESS_MESSAGE(condition, message) UNITY_TEST_ASSERT( !(condition), __LINE__, (message)) +#define TEST_ASSERT_FALSE_MESSAGE(condition, message) UNITY_TEST_ASSERT( !(condition), __LINE__, (message)) +#define TEST_ASSERT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NULL( (pointer), __LINE__, (message)) +#define TEST_ASSERT_NOT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, (message)) +#define TEST_ASSERT_EMPTY_MESSAGE(pointer, message) UNITY_TEST_ASSERT_EMPTY( (pointer), __LINE__, (message)) +#define TEST_ASSERT_NOT_EMPTY_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_EMPTY((pointer), __LINE__, (message)) + +/* Integers (of all sizes) */ +#define TEST_ASSERT_EQUAL_INT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT8( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT16( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT32( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT64( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_size_t_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX8( (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_BITS_MESSAGE(mask, expected, actual, message) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_BITS_HIGH_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT32)(-1), (actual), __LINE__, (message)) +#define TEST_ASSERT_BITS_LOW_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT32)(0), (actual), __LINE__, (message)) +#define TEST_ASSERT_BIT_HIGH_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((UNITY_UINT32)1 << (bit)), (UNITY_UINT32)(-1), (actual), __LINE__, (message)) +#define TEST_ASSERT_BIT_LOW_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((UNITY_UINT32)1 << (bit)), (UNITY_UINT32)(0), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_CHAR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_CHAR((expected), (actual), __LINE__, (message)) + +/* Integer Not Equal To (of all sizes) */ +#define TEST_ASSERT_NOT_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_CHAR((threshold), (actual), __LINE__, (message)) + + +/* Integer Greater Than/ Less Than (of all sizes) */ +#define TEST_ASSERT_GREATER_THAN_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_CHAR((threshold), (actual), __LINE__, (message)) + +#define TEST_ASSERT_LESS_THAN_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_CHAR((threshold), (actual), __LINE__, (message)) + +#define TEST_ASSERT_GREATER_OR_EQUAL_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, (message)) + +#define TEST_ASSERT_LESS_OR_EQUAL_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, (message)) + +/* Integer Ranges (of all sizes) */ +#define TEST_ASSERT_INT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_INT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT8_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_INT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT16_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_INT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT32_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_INT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT64_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_UINT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_UINT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT8_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_UINT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT16_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_UINT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT32_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_UINT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT64_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_size_t_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_HEX_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_HEX8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX8_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_HEX16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX16_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_HEX32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_HEX64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX64_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_CHAR_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_CHAR_WITHIN((delta), (expected), (actual), __LINE__, (message)) + +/* Integer Array Ranges (of all sizes) */ +#define TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_INT32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_UINT32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_size_t_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_HEX_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) +#define TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) + + +/* Structs and Strings */ +#define TEST_ASSERT_EQUAL_PTR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_STRING((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_STRING_LEN((expected), (actual), (len), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_MEMORY_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_MEMORY((expected), (actual), (len), __LINE__, (message)) + +/* Arrays */ +#define TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_INT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_UINT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_size_t_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_HEX64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_PTR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_STRING_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_MEMORY_ARRAY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((expected), (actual), (len), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_CHAR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) + +/* Arrays Compared To Single Value*/ +#define TEST_ASSERT_EACH_EQUAL_INT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_INT8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT8((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_INT16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT16((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_INT32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT32((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_INT64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT64((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_UINT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_UINT8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT8((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_UINT16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT16((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_UINT32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT32((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_UINT64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT64((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_size_t_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_HEX_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_HEX8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX8((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_HEX16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX16((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_HEX32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_HEX64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX64((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_PTR_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_PTR((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_STRING_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_STRING((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_MEMORY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY((expected), (actual), (len), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_CHAR_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_CHAR((expected), (actual), (num_elements), __LINE__, (message)) + +/* Floating Point (If Enabled) */ +#define TEST_ASSERT_FLOAT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_FLOAT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_FLOAT((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_FLOAT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_FLOAT((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_FLOAT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_FLOAT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_FLOAT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_THAN_FLOAT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NAN((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN((actual), __LINE__, (message)) +#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE((actual), __LINE__, (message)) + +/* Double (If Enabled) */ +#define TEST_ASSERT_DOUBLE_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((delta), (expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_DOUBLE((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_DOUBLE_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EQUAL_DOUBLE_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_EACH_EQUAL_DOUBLE_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE((expected), (actual), (num_elements), __LINE__, (message)) +#define TEST_ASSERT_GREATER_THAN_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_DOUBLE((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_THAN_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_THAN_DOUBLE((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_LESS_OR_EQUAL_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NAN((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN((actual), __LINE__, (message)) +#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE((actual), __LINE__, (message)) + +/* Shorthand */ +#ifdef UNITY_SHORTHAND_AS_OLD +#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, (message)) +#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, (message)) +#endif +#ifdef UNITY_SHORTHAND_AS_INT +#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message) +#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#endif +#ifdef UNITY_SHORTHAND_AS_MEM +#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_MEMORY((&expected), (&actual), sizeof(expected), __LINE__, message) +#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#endif +#ifdef UNITY_SHORTHAND_AS_RAW +#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) == (actual)), __LINE__, message) +#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, message) +#endif +#ifdef UNITY_SHORTHAND_AS_NONE +#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) +#endif + +/* end of UNITY_FRAMEWORK_H */ +#ifdef __cplusplus +} +#endif +#endif From 1b266280fe8cbcc8ae9dda2144ca59536c5d2fa8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:03:03 +0000 Subject: [PATCH 3/3] ci: add explicit GITHUB_TOKEN permissions blocks Agent-Logs-Url: https://github.com/Marcogn/3ds-zip-extractor/sessions/b66ae80f-ffda-423c-b45c-5fe9e2243879 Co-authored-by: Marcogn <54799180+Marcogn@users.noreply.github.com> --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c93d164..a33cfed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,10 +7,15 @@ on: pull_request: branches: [main, master] +permissions: + contents: read + jobs: build-3ds: name: Build .3dsx (devkitARM) runs-on: ubuntu-latest + permissions: + contents: read container: image: devkitpro/devkitarm:latest steps: @@ -35,6 +40,8 @@ jobs: host-tests: name: Host unit tests (ASAN/UBSAN) runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout uses: actions/checkout@v4