From 0ad6954f9276135cf00f8517932c764d6445eade Mon Sep 17 00:00:00 2001 From: OusmBlueNinja <89956790+OusmBlueNinja@users.noreply.github.com> Date: Mon, 31 Mar 2025 09:56:58 -0500 Subject: [PATCH] created unit tests and yaml librayr --- a.exe | Bin 0 -> 276051 bytes examples/test.c | 31 ++++ examples/units.c | 364 +++++++++++++++++++++++++++++++++++++++++++++++ include/cyaml.h | 295 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 690 insertions(+) create mode 100644 a.exe create mode 100644 examples/units.c diff --git a/a.exe b/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..6f5a295ec295d08f348fb02cfbf60c37a594cf80 GIT binary patch literal 276051 zcmeFadwf*YwZK0UGLZ1_L=74hWwfCsiZt=bSg{$H(K9;HD4_TT0}(0$CNm0(kT^4% z)8jyHYg^l^t=`sq`>uT{*s4i@BtX>wRza!)zRoZ{B3cND=J#FuoHLmq?fv~epWmN1 zAILdp@3q%nd%gDBd#`g+b6u-vh{xk8C(?ngys|6+3OYw~@FPsdP#lIIm|NGv=Hm@$lQnx;>uphZpi(dyLmp;*fZRYR|;j+$Aw8`X1t!5F}$~9Qi-97~RAasuUT{6CTZKjwelPc@^QxY&kMW86ul^yw-AxAIdh za7%2s1;UG7{tMi5{LlNT7Pwm)8>Q&65%OC}N^S=IGzoq4oqmPaCBO~mx^57d^xHOZ z>Q&RFbe8<`11IBsQ62_f3<3kL$rBz*SY9O^s)b=v6J93LlpV z5d%NfjCbJa|L*?(_X`UoLJyuV%6;v9dp7_Y)F+Hia*wi&5f2;XB{3`tqK|FeL z8+FGRCGPVm_qlwW>i9Rfn8YM+thTC6PpliiwsnnAWL*S`>|cal?djUG`sRZpys@xc z3gRt^)iRo+wEOSr@9#HT`*^6@klLbsuRSxL5^Zb~CG-fkKy~3Jes~* zDnn*b)R^=LX&UTggaLpK!+h*w_CfOK>61h3aqwWDgEo?cKsGfyVE87kMS zHasKt*cB?DDZ>x0ft3EJS-4F%7L-rYDObkJRZTro;0Mmr|El!x8F%LN@|o};g(y7w z!+K(^SNC?BzOO=PVB3lxrFE}fw?S{;HN;vgf-yeU4WF0Fh_T-Ky((E>llnkQzAo)S zntWMq>U{5fz{Q-r5Jjolk!o9hwW8N1P|;kqLFhDM<>Q4`zmPVGrk)(p{jWyNGruor z9*!6bUiat~ow|3uqOi_)KjqN(OX1#3Jsm9%g{wA1xFLo0zoAc~-TF2S*8t(M%H&S` zx3v$bR;3TNsQtQma>27|sC9tO)y=|j!gAeQT$C+Ub`$8-l5bM9#=?2^zgpGSt82eM zJN{l(ziyuU%3l$|&_thCOP-4a&7s1=4A5P^74O^Aq*E>Gn(Eh*GyuEr^S{VNSRNZ0 zu4+?`yJ|y!kM$>IAEQP=RR8F%F9d3IEsfB^ibMVVx=~=YuVf^Te1%_6pUSU}G#oR1 zU!gy9)S3LI#VK5(hR5n0D}{%$u*i3i->D5+QUVZj^xN{ZB~}J!{cv{e^P+&63fNk& z_+xFQ7t^;MFc(CXV^a?d$y|_wqq9?mJag1=E?q+fjrBWetJsn%0uq?l)p$pBaFqsO{|LWK4#7X(!8`m512upN|jDX^`g3FFslW8M0HJ|p$=W1T*z zJ~K@)4gA2rVxTf_LyzEJJ5Z(WX6VK{*nYKc)RgFExCBKy;a7|cngU?bjc}iyxVO&} zAHG_8%OD>H9qtRRmVrQp4Lez2DR$c#;ZNPi2CB^Pr-?Q%h6>uVY_t|=El>Pd7i=x! zR9$3m1X{1_(aoAZDy@jIA!77ABMg@20_OsRE&OxmK+h|vlO_Tu@gdajbf3R#*X@Ln z)i)yedPX1?z3LeM8DIE+e3VqJ?ddj z%YRWlRH{wSVYRUlb}`;0=HL;|KvZ?nkw)`naFK-qmjTq73}Ar7#QS-S$ZJ}RGn(`y z0~(#*_!Jt~>)P@*el2VpghuqFL^o#OIfSP$Phn0JADp-M=%WcMaE&ga&NK<63!FwM=NXzKh*}PeBau#&u@yz+%IYSeZC5 zTws6Zb-T5a#D2Pg$X#dsz4%$1h`i2d!y-Ur+cRg%S?|fpbDZptb;9T z$ke%g3nx*{+9Fp?#KGlzfx}th5HU%iwEe=@oO@9sZ~O$e#_j{;?bc72XArh9@!uJS z!)>RF8x*4S=cW?BgMisolmIH2M;dI#)K2)OxQR5`x>w0~1gw|C@s zI~X^$)1)>L?sY9gJX5cB-y%^5B|c~cY=Vn~dq4LwT?_~*pJgTaL+cwfG)A8967z?4 zc-3J;J5n{2d_R@r=;095E|Jm_C1ua>zW#>2sOepivs6 zedRgG_Z-OKcAq<0f}6f8U2t8%MN3RVJn)TSk&Fe%0E=@dS{)Q!L?*cv_(s9@iKEhoD;6@w*98G%?US^L-CM~b3;z%|^g22RS>!;TA-y`?R2@{j+-CabyX|I4yTrZQY(4ryH4=gS`Nx#Qq4!x2 zite7{HaJ5XqyY=R2tk6EOWoNnFd|SXB2H#}g6Kb?u1$z~q0y z6rcPjKvbUYbk^Xuo-eJ_z9~7#*BwZYbmsWG<3xJSG*bk6aa03}G>i79tM&tqs`z8Y zdnTiiZcjs`r`%-Z&2>1_>2Q_b=EJM6Ied7L8&JQhq%2aJ;y}&?Qeo1P_j?qT%7wmS z_bIxlCW?trt^A1LVr=53`QEn!tYVcb`B@J2)*pcf{tS1BxXNu3;fAj7&OtuwK<*qn z(DS}tMvKH05O(O;VxbfpVU%H*i|&i0dBu$=};dP}1LQ_t^~%-7=s#FhwmgA*9XpEqC$8x!J3ggxl)1uls)XxW}XY zpe@nsO}534r`Y!+N~j69xy6cKwwVYOKm8%SgZ{NsY~@t(j9^}kdqE0Adi@<|{e zN)g%lk?o9T;f!Q&WTxzm)Y|(ZP0IvxxX<1OX;4pxuiorcRBxAOh%0_}Cgk2;4o=QB zLN99lcH#Izh2tRwi<#+%!pcYNu`Iktu0x!f@iqY;=NHQIIk%NB?WLd$6nh=bJVQaN z%@(Nz`%IQozU@x+$it9PYxiOvR*`5c`f^XIPW$ zrRkX^c5f$tskf3N^+uueHqk+Mh0~kq3%u$mXC*g^U1-8)WU43nhA2h(Tq&uD|Lz~y z%>DfsTTu=W$|=R}<%W9O@C0&>1Ni`u3Tb-u_Z6CU>)j8PAz7yHIk)+rrFkwA`BkpJ z;SQFd)1TosXtMij&Ov_qeVel5r9Z(Giep~+B)g(oR6KE zL%7O8*m;sY)T3NnKEVYebC63N$VY&5hWeCaCZDOk!c3G~|L$;VBR3G}Oq69gEMpxk zS3CXv*lqAVX^{4Ps89-Piyg=b(w|_Gp*FhU-x6@g)4%k-JJd7n)>h@x+)!W0A^h3* zXoAppoM;dAD=w}R1()j{r0bOq%--sA=Xo%z{z9fIW? z2g_|ve}8lv{8AdEeRVm?PH`ZE(w|_8-AcD=Za#&v8R3^r-%_{rV!65Z<`Mm z#97JalGO?b{%)Ran)j(E@ptp=&6;_#MPYH9IJ{b4No#0OlI>)(~TcB{V37Rztlwogb~*0(vx6CB73fnWrUft zh4to)#cnURN-suurYcK^pNtrrISzXqB+oPfFFh@zz3IEu?I$SxB<`K*VLO!uHdR0T zjt$#$JXDP{ePu4RCeS&s`yH@f0H$zg5@E}bA!xcVu4b_fJ-yt|eiWo!oKMQfv@?Cr zZ+6)A6gPI;8>B6xfZSs;GNRYy_U^c{+B`ZxRtJ&o)_8}`#V)E_1yzpDHykjpqBFc$ zM74N`c7F#OaxUi{5qGRKwB7neOf5MA5f9YK%mc=&oP8+&Wpqm`%caIZR{He!b#jm&#B5kScw52k{ z8O8;`id61%p_dADT9)ymQoXG_(dn^(DI8kzRHY_Jh2rFUik5kUXc4!Yqvbk9%Xk<2 zSizpScitdc?s7W$?P!~peJ?qbf56QEEpr^O2LMwzv?QCk4%Zw$?7+L_`hEjI)Awr^ z+fN0XBb6dWI5Solo_1K0-NSx`XoEBGw^jkn2v2lqy2ZtEtzgN4^*CUklq%ecDa8mV z5nkp^+`Ft!TlqEnK(Kk8NL|*J&F@zW2VME6{>m8SC-Xo7cg)CdHlVm*AQUonW z$#`4B-zci8Qm7z;9C` z2a|&K7suL4@bL>y1B)B_bii(Q!0rRgMWZDHigHDZ;P`;^RY-e`E)FN{?tIdo1&Qf1 z-Jb4~o)XVWvq7Z2nzl(h$|3D)w?U0G$dR_r0ekP50W?|?1^E&Ym;{5z? zv^GP}JAwTp9#>M-O2r`J2^RSbCz?bU?wq#()>_caIXQX$UFaq319 zq9f2Nz@1R)=uJE;YIv-+a>3{7xVw3s=xlCh#BZ%tD(p*s*QTZ4%f~L7^$vSY)=o(+Nc*04n*Gkkvc-9Pj7QV= z#wJea#WQViikBWO#cSQ-E~oewRs1By=IHZz`;JY2NN|t7PoRBE z_#NobzSpKb)n*@33>?z46k|c-8+Q-Q2s>~Yr{`tU)VKEcP&-U&({danhq$Br?&gsb z#64Uz)hEgG7wBcyIQJ!S$x^M;nzw z4JDf)L=uDVex8x7Co>!5tyOJ zA4iS-I|t~hMm6?^w348o<^Iw#e%(=`n|Bo1S!P>rQ?+2LjHrB{JpwL$jK^vt#>d>p z%KetPfZ1Owk^W2Qzp4$4PypRa;6f|oU-KW>?e_=zEe28c{(9@#Z zTFqj}V`qA#M_mQ#2>xg<1J_Lwu53PR0?>}AB1W$jX0+B!AV{8RqOr%$Z>rVn&i(Ih z0o;_@r>#6*Icwj;l#p+wC)&yoW>Ub(Ao4^5Ya2*|s4X(DDvEe}c+~FuHdVnyJE2zF z_+a4UIIETI)+~gs8(rv!mV6fgEH5mbq{lp^x4%VT4b&2Um!S1njU$luH6w$oD+Mw= z5>fh&SI|V0x)Cia>mS{}ohre0FEAv=h0?W$61zW(6{Tz261$&|ACvIC2|B1)S1ZX% z*cV6qx)}un8E}(=tE*|aT9zFlE!3tDIr-0k>&9h85o5bC6kqq|JQ2_Mo;YQwYI=OQt5sr@q&5spX5@puFJQHX7VHYRH+-jwLC`+ORw0*`efL0 z_CfnbXsd2S;^q)oo4Q_NoT-I!TPwHIitq|r>POsT;UlAgtd^Jw2cqV=mGlvOp8Njn zZLWSK4ist0^TC!lP@<)(X{9}Ve)H}&D5yuZjJHL#nu#!AR7Gdh`(kQK{6xJOMgh6% z6zQe;3r`cwe(-2{Fb-JPGQ-sy=R3VO-e?YiDD$4esJB;pYGafHOYi=~0l$_k0k?Ml z-O!UbP_3oZ3}~KjcVm+fFV=;Kr-caPfMB#fQ`vIoGp>gJMn2}KAFoFPHfSpwMV98d ziC0Mw-Jz%NJ*4~>f^P-@-3^%ttSvSQOF&n3ROmqeE5XD%v~TVB&^N|i4cM}t%mmN~ z-eV>G@(b7ibB*>9mlbKLhouK-$lRx3nyB<>PdVJGPD1F9DG_clq#U=77j6mUs$Qv0 ze9@#msH_WCO=K|DE$3%?Kxq44(?OTow=@*_3k?KUf3*0G9KJEpz!%!8p9!wjRIQMD zoovRHXtm=1_RrXKI6t#YaJIV5VjHq=DSzh(QA^IHUFI%+*?h{CkELDa95uoaswetW zhD6byUOblBSZIC&CLqLpLoOom)cTfmcag~Bt;|B285=RD8iGn|r#kM!X&W0OMjxfO zO6f)^O^^D7@X30Pd)KqtSG6@uKJ!}H3@+U&bJaLziez~cqr;v0C9BjgE_S?j^z`yd zW`$6Bb$^eX56oQ4c#Tm%q;2Nqx%fTFF^rUfpaoz ztG2r?nQU^obGDCp;hTxR;=68R9xIW^_^^4bYKy&xlB^e5N`mM`qMTxWUb!)S7tpd6Yf9Jq_KG{bEaitoK$5vX=5+Z3+jj zF-a51Euwwwg~=y#iT?-G6jEsIW3)CkkMO8mZUZP(Wq(ih#{>Pl^sjSUq^bc_bCNx< zUr~|y7G<_R0*{~aSPwbyvC|dyQo$}2{XLnB(ht`$^;0I>a~b>K}d4R$=|gZ??Bz%`+QS(d2Wu zqK{d_7|;o{KuJ=wA@5rN7>o$D&h;#HhpffjiP__B!zO+ z_BM(Mc+aoel07MJ?6#d_o)B~rF_q~JaBdVViDz{J&{K3{N{LmYXokE}aOL#`jlO2^ zW?vtKu-c>Si(phsA`8!5m0%)i`6fVR-e=w*0*>5*`?Accaq;C3-QC0CfO?lPqlcgT`EcUhFYCI8Yu~#C;@6#2!xmzc47ni4Exh7#YQ*nM7DnI%c4~lBpq?AM< zg`hO(yoHkEQ+?1T>Z73cbakm-u{n|sdCI~(3{~7YCz!5g{O0 zV6dF)o9`B$_G(X05y4Io!4}wp&5_Pq5|BPXyYP2k_1F9{qMi-0KkKqwMYMXLBW@vD zH=da<{cp+9uZ#XTYF4ZpJvN-JWx5vXk)nY<;D3cpzfy(&o&T^NuIodQLv3j!J-tK* zu_5+qFdbC70slJ&@qY^X*=F;93jA+x7^x>Z#zz91m42F2%J=uQTVq{&h?*z=ki`hg z79{=+7+O+OH}%3A?>1K>j*1HVbMHL4dXWj5O@!>?G~Q68L1gVvm%c5r4PkWm3Uv4K z^z^~>T{^PH=*CNa=VwCY=X6;A} z$$ReoMg{AX^L4J@#@JM z&n$r;`jTBP-zmo&*-r@=D=CCH_=niqG(zRn9&p+b;XZK>Lj{T};2%*x4u zQQEJWtc9-3Z8Djx9-?3~H}N3;z>Z&ytqgcyXLY>DoLU~3I)3>v?Bg`O>yP{Ox@qMt zBTFcjEy}6o&h(n&mc_!zI0}ywZ3jYOJl=q8l&Nu>54P za^-YEQxfPjI<(6Pd(5dLwaDH;ueNG0GCI=vuAuhZ<*fUJ8?lWt z+J@`$MoY6e8zPC(m(EtHw+yF_WcDzojpPlu!44RUd2Nj!daMM22qSdiR=f*m zF%`tTj@&o3xG;VJ)N`-qN4Ndd!R_PkI-FVcu0%LbxcqlZWd)eHZKO9N z^ubFW`?C+$w>tBAkW*0O)j$WDZM>*m&U=EC;Aq!sk%NIgZPl}o9PFxAB1m7;FK?v% zfFeTM^xeEVxIa7A-T$haioO(>)5;SaUSnFh4qq>n2w3>KP84ifd0^W3<-2UQ9=mUy zKeov_2$`YbXA24)t-vJ zpiw>2=wMi&D2$(v`<9ZNJU(HmoYzWL4%Ag|^e%=O`KG{5IT zj@olaVJ5LoYt0NXSjUgkuAv(uSDc)^O8FJn?p%Oi;sbBP`CvW_>nz;vT<8OMcF(M+rKJNv`?TFMs*V8tr$RMJXcfdrl2`d*E?Ui{|S_ zfxHahs)fiR^(II%8IZ!4kkQuk_I@(Qln}oPdy!yGU6-(w_3ty4fYsFXhm4v-mIs0_ zO~)?shRhmU`ma!n(2=;&A<}*Dbqbsr$Cmr8$RULLapX-}t`s2H^u-0XcseikR%Y%+ zQB)j#WE&`RZ6Fx~(B?&IF2u^nzdU4(wc;9?uyf;newaMT*5SwaD+Y}%FwlXauaXyM zg$KzA+|;*r4y_bp$RAw#E22^rn~|-fwlc){G-=gxCUiMUn!FzVhSQ7sMIrC|Phoa1 zzid0Rxw0$AH)Rv6XpBu@@(yA!VI1+RK)v)AM&CHkP?A z69Mf*yJ&G~dir^6eZ2tsP|N9;rbFiqahN>CTbUI*aBXZ=9ep}-5D7#A>$JqZkjdzT zcJ^X2a!Q$-4+s2C<~xYc9>*W)NQR$!fg+Y4+RE1`soIkHyMW-gpeYuEmyvX1f%uEm zi^7hFsLdahmTITO(KR)y@8Rf!=}Y=$e}4K<#L#1pBQsrO;2=IVl2}^+@~H7fP2e9| zssY@{HB${TTX1mq-ts}5&0J2UBKbshvq4)`14>6{GppG&ReIs=>Nj4u8QEI6%l)3xbhs_U!dJD?^9HN;G zCFb2?oH7~c#@0mJ@hAt=L2N{Q;%;0*ssllqjU(A9S5wbePfcK5?2IsLi?1r{ zi;b1VWW~bm-(8{IYOdEUtWUEC4%4~eEP{7#LxKU&e3XsZmi zu(mi*d?)MT%>5BA%$=;g4`}VO| zYTxpyw1%pRPNQ)okLT>~YNK^*C{CUd`dE6*AiYb9ATS-7Taw2CiuMb$wB)aO2zG`& zXGYR-uQ>hFGbd6s5MMa)n(Ow(){}kk5DZ6{Q(hZ1r*v3zuTXPJw!`HY?tHbl^N9Al z9@urNwrBzvkk1oo70FlOZ>TsF%M?>Su6nk2z_nL-a0BRWka4^%_ROfMR9Bo-;&dnM;Iy zx%F1m_z=NXYspHA1;{V%J#!jQP>#^t1qI*v5VNi8b(M{HGvfWHH3W)Xr?4FeTctA3 z3sI~Gb0?7`TJmy#Vrl8;M6vewJ+!Bpw>n9dmg$){CY%?! zNrI5wfsd`bF18n9FVT*r43XVXZ}vpxpAKJ#p?|USV7rVepY_gqL9w4jd54vaD$d)h zQd-4XoE_4Q_tjbHjRW!^zM4q4*0H=bK(zIx`W&tCKIgk$&WCH|Osy_5@A#k@9BI6u z8?T0p&Zx0Tz9F-+S8OxDno-V2gXWbbp^COZkG5(&ZYXNc3SDMdB(G573#O`X&q1`}rBZ3~#N0bicj0SwroRGYbcH#>E1g?Di+Ec^UNGz6Y zllRKIyxMc!V7B5QMH6F7Snrm^UbB7k*7=>{N+!?X=dMmYeVL!k4Rx4fJpp|7j}iyC zeA*W*hC!3Xnu3X?OejgQEOv1Vls{U-L%*KKq|^>%m>ET>k|P@ru;K)|FNzWVWjke0wdMXV#_=06r9h>OP!P&?HLE*?q={j}Z*Ao~cp~Da8^pcxRvs&Q zu&b57X@XJ};XV zC3#&4eud||;K8QjA7=hxcjEX<>Sg6=HA?@##S7W}=Z{CVpQh-@8&Bp@fLn!e%kLJZ zVJO15%vJ)Ifg#363a4Ri%OB{)b$rL=`f=PPPHit_F*^8ZahI?PGQZ-=83{`}i7-9@ z@4il|-{vO!rsLOhhwwC< zax}376t4aS>R@^1Nh*z={o7<%LG+tUihoi?QI8twP9EI-8)X(j;e)XW{}QR|4Yv1< z)#tx>Ykhsa-hSY;P(^#}Wb~u1z5T%0Ae%G#{5HF;@3e|;qdoqPIduZLZ1Is@Qzu}& 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 V_*jb-Cre~; + +int main(void) { + // Load a YAML document from a string. + cyaml_document_t *doc = cyaml_load_string("example: Hello, cyaml!"); + if (!doc) { + fprintf(stderr, "Failed to load YAML.\n"); + return 1; + } + + // Get and print the root node's scalar value. + const cyaml_node_t *root = cyaml_document_get_root(doc); + if (root && cyaml_node_get_type(root) == CYAML_NODE_SCALAR) { + printf("YAML Content: %s\n", cyaml_node_as_string(root)); + } + + // Create an emitter and output the document. + cyaml_emitter_t *emitter = cyaml_emitter_create(); + if (cyaml_emitter_emit(emitter, doc) == 0) { + char *output = cyaml_emitter_to_string(emitter); + printf("Emitted YAML:\n%s\n", output); + free(output); + } + + // Cleanup. + cyaml_emitter_destroy(emitter); + cyaml_document_destroy(doc); + return 0; +} diff --git a/examples/units.c b/examples/units.c new file mode 100644 index 0000000..7b9f509 --- /dev/null +++ b/examples/units.c @@ -0,0 +1,364 @@ +#include +#include +#include + +#define CYAML_IMPLEMENTATION +#include "../include/cyaml.h" // Adjust this path as needed + +/* ANSI color definitions for pretty terminal output */ +#define COLOR_RED "\033[31m" +#define COLOR_GREEN "\033[32m" +#define COLOR_YELLOW "\033[33m" +#define COLOR_RESET "\033[0m" + +/* Global counters for tests */ +static int tests_passed = 0; +static int tests_run = 0; + +/* Test assertion macro */ +#define TEST_ASSERT(cond, msg) do { \ + tests_run++; \ + if (!(cond)) { \ + printf(COLOR_RED "[FAIL]" COLOR_RESET " %s\n", msg); \ + } else { \ + tests_passed++; \ + printf(COLOR_GREEN "[PASS]" COLOR_RESET " %s\n", msg); \ + } \ +} while(0) + +/*--------------------------------------------------------- + * Utility Functions to Clean Up Manually Created Nodes + * (These are needed because our cyaml library currently + * only auto-frees scalar nodes from cyaml_load_* functions.) + *---------------------------------------------------------*/ +static void free_mapping_node(cyaml_node_t *node) { + if (node->keys) { + for (size_t i = 0; i < node->mapping_size; i++) { + free(node->keys[i]); + } + free(node->keys); + } + if (node->values) { + for (size_t i = 0; i < node->mapping_size; i++) { + if (node->values[i]) { + if (node->values[i]->scalar) + free(node->values[i]->scalar); + free(node->values[i]); + } + } + free(node->values); + } + free(node); +} + +static void free_sequence_node(cyaml_node_t *node) { + if (node->sequence) { + for (size_t i = 0; i < node->sequence_size; i++) { + if (node->sequence[i]) { + if (node->sequence[i]->scalar) + free(node->sequence[i]->scalar); + free(node->sequence[i]); + } + } + free(node->sequence); + } + free(node); +} + +/*--------------------------------------------------------- + * Test 1: Load YAML String (Scalar) + *---------------------------------------------------------*/ +void test_load_string() { + const char *yaml = "Hello, cyaml!"; + cyaml_document_t *doc = cyaml_load_string(yaml); + TEST_ASSERT(doc != NULL, "cyaml_load_string should not return NULL"); + + if (doc) { + const cyaml_node_t *root = cyaml_document_get_root(doc); + TEST_ASSERT(root != NULL, "Root node should not be NULL"); + + if (root) { + const char *str = cyaml_node_as_string(root); + TEST_ASSERT(str != NULL, "Root node should be a scalar string"); + if (str) { + TEST_ASSERT(strcmp(str, yaml) == 0, "Scalar value should match input string"); + } + } + cyaml_document_destroy(doc); + } +} + +/*--------------------------------------------------------- + * Test 2: Emitter for Scalar YAML + *---------------------------------------------------------*/ +void test_emitter_scalar() { + const char *yaml = "Emitter Test!"; + cyaml_document_t *doc = cyaml_load_string(yaml); + TEST_ASSERT(doc != NULL, "cyaml_load_string for emitter test should not return NULL"); + + if (doc) { + cyaml_emitter_t *emitter = cyaml_emitter_create(); + TEST_ASSERT(emitter != NULL, "cyaml_emitter_create should not return NULL"); + + if (emitter) { + int emit_result = cyaml_emitter_emit(emitter, doc); + TEST_ASSERT(emit_result == 0, "cyaml_emitter_emit should succeed"); + + char *emitted_str = cyaml_emitter_to_string(emitter); + TEST_ASSERT(emitted_str != NULL, "cyaml_emitter_to_string should not return NULL"); + if (emitted_str) { + TEST_ASSERT(strcmp(emitted_str, yaml) == 0, "Emitted YAML should match original scalar"); + free(emitted_str); + } + cyaml_emitter_destroy(emitter); + } + cyaml_document_destroy(doc); + } +} + +/*--------------------------------------------------------- + * Test 3: Load YAML from a File (Scalar) + *---------------------------------------------------------*/ +void test_load_file() { + const char *filename = "test.yaml"; + const char *yaml = "File Test!"; + + /* Create a temporary file with YAML content */ + FILE *file = fopen(filename, "w"); + if (!file) { + printf(COLOR_YELLOW "Warning: Could not create temporary test file.\n" COLOR_RESET); + return; + } + fputs(yaml, file); + fclose(file); + + cyaml_document_t *doc = cyaml_load_file(filename); + TEST_ASSERT(doc != NULL, "cyaml_load_file should not return NULL"); + + if (doc) { + const cyaml_node_t *root = cyaml_document_get_root(doc); + TEST_ASSERT(root != NULL, "Root node from file should not be NULL"); + if (root) { + const char *str = cyaml_node_as_string(root); + TEST_ASSERT(str != NULL, "Root node from file should be a scalar string"); + if (str) { + TEST_ASSERT(strcmp(str, yaml) == 0, "File content should match expected YAML"); + } + } + cyaml_document_destroy(doc); + } + + /* Remove the temporary file */ + remove(filename); +} + +/*--------------------------------------------------------- + * Test 4: Numeric Conversions + *---------------------------------------------------------*/ +void test_numeric_conversion() { + // Integer conversion test + const char *int_str = "12345"; + cyaml_document_t *doc_int = cyaml_load_string(int_str); + TEST_ASSERT(doc_int != NULL, "Load integer string for conversion"); + if (doc_int) { + const cyaml_node_t *node = cyaml_document_get_root(doc_int); + int value = cyaml_node_as_int(node); + TEST_ASSERT(value == 12345, "Integer conversion: value should be 12345"); + cyaml_document_destroy(doc_int); + } + + // Double conversion test + const char *double_str = "3.14159"; + cyaml_document_t *doc_double = cyaml_load_string(double_str); + TEST_ASSERT(doc_double != NULL, "Load double string for conversion"); + if (doc_double) { + const cyaml_node_t *node = cyaml_document_get_root(doc_double); + double dvalue = cyaml_node_as_double(node); + TEST_ASSERT(dvalue > 3.14158 && dvalue < 3.14160, "Double conversion: value should be approx 3.14159"); + cyaml_document_destroy(doc_double); + } +} + +/*--------------------------------------------------------- + * Test 5: Mapping Node Functionality + *---------------------------------------------------------*/ +void test_mapping_node() { + // Manually create a mapping node document + cyaml_document_t *doc = (cyaml_document_t*)malloc(sizeof(cyaml_document_t)); + doc->root = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + cyaml_node_t *map = doc->root; + map->type = CYAML_NODE_MAPPING; + map->mapping_size = 3; + map->keys = (char**)malloc(sizeof(char*) * 3); + map->values = (cyaml_node_t**)malloc(sizeof(cyaml_node_t*) * 3); + + // Key-value pair 1: "name": "cyaml" + map->keys[0] = strdup("name"); + map->values[0] = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + map->values[0]->type = CYAML_NODE_SCALAR; + map->values[0]->scalar = strdup("cyaml"); + + // Key-value pair 2: "version": "1.0" + map->keys[1] = strdup("version"); + map->values[1] = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + map->values[1]->type = CYAML_NODE_SCALAR; + map->values[1]->scalar = strdup("1.0"); + + // Key-value pair 3: "count": "42" + map->keys[2] = strdup("count"); + map->values[2] = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + map->values[2]->type = CYAML_NODE_SCALAR; + map->values[2]->scalar = strdup("42"); + + TEST_ASSERT(cyaml_node_size(map) == 3, "Mapping node size should be 3"); + + const cyaml_node_t *node_name = cyaml_node_get(map, "name"); + TEST_ASSERT(node_name != NULL, "Mapping node: key 'name' should exist"); + if (node_name) { + TEST_ASSERT(strcmp(cyaml_node_as_string(node_name), "cyaml") == 0, "Mapping node: 'name' value should be 'cyaml'"); + } + + const cyaml_node_t *node_version = cyaml_node_get(map, "version"); + TEST_ASSERT(node_version != NULL, "Mapping node: key 'version' should exist"); + if (node_version) { + TEST_ASSERT(strcmp(cyaml_node_as_string(node_version), "1.0") == 0, "Mapping node: 'version' value should be '1.0'"); + } + + const cyaml_node_t *node_count = cyaml_node_get(map, "count"); + TEST_ASSERT(node_count != NULL, "Mapping node: key 'count' should exist"); + if (node_count) { + int count = cyaml_node_as_int(node_count); + TEST_ASSERT(count == 42, "Mapping node: 'count' value should be 42"); + } + + // Clean up manually created mapping node + free_mapping_node(map); + free(doc); +} + +/*--------------------------------------------------------- + * Test 6: Sequence Node Functionality + *---------------------------------------------------------*/ +void test_sequence_node() { + // Manually create a sequence node document + cyaml_document_t *doc = (cyaml_document_t*)malloc(sizeof(cyaml_document_t)); + doc->root = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + cyaml_node_t *seq = doc->root; + seq->type = CYAML_NODE_SEQUENCE; + seq->sequence_size = 4; + seq->sequence = (cyaml_node_t**)malloc(sizeof(cyaml_node_t*) * 4); + + const char *items[] = { "one", "two", "three", "four" }; + for (size_t i = 0; i < 4; i++) { + seq->sequence[i] = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + seq->sequence[i]->type = CYAML_NODE_SCALAR; + seq->sequence[i]->scalar = strdup(items[i]); + } + + TEST_ASSERT(cyaml_node_size(seq) == 4, "Sequence node size should be 4"); + for (size_t i = 0; i < 4; i++) { + const cyaml_node_t *item = cyaml_node_index(seq, i); + char msg[128]; + snprintf(msg, sizeof(msg), "Sequence node: item %zu should not be NULL", i); + TEST_ASSERT(item != NULL, msg); + if (item) { + snprintf(msg, sizeof(msg), "Sequence node: item %zu should equal '%s'", i, items[i]); + TEST_ASSERT(strcmp(cyaml_node_as_string(item), items[i]) == 0, msg); + } + } + + // Clean up manually created sequence node + free_sequence_node(seq); + free(doc); +} + +/*--------------------------------------------------------- + * Test 7: Bulk YAML String Loading (100 iterations) + *---------------------------------------------------------*/ +void test_bulk_load_string() { + for (int i = 0; i < 100; i++) { + char buffer[64]; + snprintf(buffer, sizeof(buffer), "Bulk test %d", i); + cyaml_document_t *doc = cyaml_load_string(buffer); + char test_msg[128]; + snprintf(test_msg, sizeof(test_msg), "Bulk load string test %d: document should not be NULL", i); + TEST_ASSERT(doc != NULL, test_msg); + if (doc) { + const cyaml_node_t *root = cyaml_document_get_root(doc); + snprintf(test_msg, sizeof(test_msg), "Bulk load string test %d: root should not be NULL", i); + TEST_ASSERT(root != NULL, test_msg); + if (root) { + snprintf(test_msg, sizeof(test_msg), "Bulk load string test %d: value should match", i); + TEST_ASSERT(strcmp(cyaml_node_as_string(root), buffer) == 0, test_msg); + } + cyaml_document_destroy(doc); + } + } +} + +/*--------------------------------------------------------- + * Test 8: Bulk File Read/Write (20 iterations) + *---------------------------------------------------------*/ +void test_bulk_file_rw() { + for (int i = 0; i < 20; i++) { + char filename[64]; + char content[64]; + snprintf(filename, sizeof(filename), "temp_test_%d.yaml", i); + snprintf(content, sizeof(content), "File bulk test %d", i); + + /* Write to file */ + FILE *file = fopen(filename, "w"); + if (!file) { + printf(COLOR_YELLOW "Warning: Could not create temporary file %s.\n" COLOR_RESET, filename); + continue; + } + fputs(content, file); + fclose(file); + + /* Read file and validate */ + cyaml_document_t *doc = cyaml_load_file(filename); + char test_msg[128]; + snprintf(test_msg, sizeof(test_msg), "Bulk file test %d: document should not be NULL", i); + TEST_ASSERT(doc != NULL, test_msg); + if (doc) { + const cyaml_node_t *root = cyaml_document_get_root(doc); + snprintf(test_msg, sizeof(test_msg), "Bulk file test %d: root should not be NULL", i); + TEST_ASSERT(root != NULL, test_msg); + if (root) { + snprintf(test_msg, sizeof(test_msg), "Bulk file test %d: content should match", i); + TEST_ASSERT(strcmp(cyaml_node_as_string(root), content) == 0, test_msg); + } + cyaml_document_destroy(doc); + } + + /* Remove the temporary file */ + remove(filename); + } +} + +/*--------------------------------------------------------- + * Main Function: Run All Tests and Display Summary + *---------------------------------------------------------*/ +int main(void) { + printf("========================================\n"); + printf(" " COLOR_YELLOW "cyaml Unit Test Suite" COLOR_RESET "\n"); + printf("========================================\n\n"); + + test_load_string(); + test_emitter_scalar(); + test_load_file(); + test_numeric_conversion(); + test_mapping_node(); + test_sequence_node(); + test_bulk_load_string(); + test_bulk_file_rw(); + + printf("\n========================================\n"); + printf("Test Summary:\n"); + printf("Total tests run: %d\n", tests_run); + printf(COLOR_GREEN "Passed: %d" COLOR_RESET "\n", tests_passed); + printf(COLOR_RED "Failed: %d" COLOR_RESET "\n", tests_run - tests_passed); + printf("========================================\n"); + + return (tests_run - tests_passed) == 0 ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/include/cyaml.h b/include/cyaml.h index e69de29..e54f93f 100644 --- a/include/cyaml.h +++ b/include/cyaml.h @@ -0,0 +1,295 @@ +#ifndef CYAML_H +#define CYAML_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/* --- API Declarations --- */ + +// Forward declarations for opaque types. +typedef struct cyaml_node_t cyaml_node_t; +typedef struct cyaml_document_t cyaml_document_t; +typedef struct cyaml_emitter_t cyaml_emitter_t; + +// Node types. +typedef enum { + CYAML_NODE_UNDEFINED, + CYAML_NODE_SCALAR, + CYAML_NODE_SEQUENCE, + CYAML_NODE_MAPPING +} cyaml_node_type_t; + +/* Document Loading and Parsing */ + +// Load YAML document from a file. +// Returns a pointer to a cyaml_document_t or NULL on error. +cyaml_document_t* cyaml_load_file(const char *filename); + +// Load YAML document from a string. +// Returns a pointer to a cyaml_document_t or NULL on error. +cyaml_document_t* cyaml_load_string(const char *yaml_string); + +// Free the document and all associated nodes. +void cyaml_document_destroy(cyaml_document_t *doc); + +// Get the root node of the document. +const cyaml_node_t* cyaml_document_get_root(const cyaml_document_t *doc); + +/* Node Querying and Access */ + +// Get the type of a node. +cyaml_node_type_t cyaml_node_get_type(const cyaml_node_t *node); + +// For scalar nodes: retrieve as a string. Returns NULL if not convertible. +const char* cyaml_node_as_string(const cyaml_node_t *node); + +// For scalar nodes: retrieve as an integer. +int cyaml_node_as_int(const cyaml_node_t *node); + +// For scalar nodes: retrieve as a double. +double cyaml_node_as_double(const cyaml_node_t *node); + +// For mapping nodes: retrieve a child node by key. Returns NULL if not found. +const cyaml_node_t* cyaml_node_get(const cyaml_node_t *node, const char *key); + +// For sequence nodes: return the number of child nodes. +size_t cyaml_node_size(const cyaml_node_t *node); + +// For sequence nodes: retrieve a child node by index. +const cyaml_node_t* cyaml_node_index(const cyaml_node_t *node, size_t index); + +/* Emitting YAML */ + +// Create an emitter object. +cyaml_emitter_t* cyaml_emitter_create(void); + +// Emit a document into the emitter's internal buffer. +int cyaml_emitter_emit(cyaml_emitter_t *emitter, const cyaml_document_t *doc); + +// Write the emitter's contents to a file. +// Returns 0 on success, non-zero on error. +int cyaml_emitter_to_file(cyaml_emitter_t *emitter, const char *filename); + +// Retrieve a string copy of the emitter's contents. +// The caller is responsible for freeing the returned string. +char* cyaml_emitter_to_string(cyaml_emitter_t *emitter); + +// Destroy the emitter and free associated memory. +void cyaml_emitter_destroy(cyaml_emitter_t *emitter); + +#ifdef __cplusplus +} +#endif + +/* --- Implementation --- */ +/* To include the implementation, define CYAML_IMPLEMENTATION in *one* source file before including "cyaml.h". */ + +#ifdef CYAML_IMPLEMENTATION + +#include +#include +#include + +/* Internal structures */ + +struct cyaml_document_t { + cyaml_node_t *root; +}; + +struct cyaml_node_t { + cyaml_node_type_t type; + char *scalar; + // For sequence nodes. + cyaml_node_t **sequence; + size_t sequence_size; + // For mapping nodes. + char **keys; + cyaml_node_t **values; + size_t mapping_size; +}; + +struct cyaml_emitter_t { + char *buffer; + size_t size; + size_t capacity; +}; + +#define CYAML_EMITTER_INITIAL_CAPACITY 256 + +/* --- Document Loading and Parsing --- */ + +// Loads the entire file into a buffer and then calls cyaml_load_string(). +cyaml_document_t* cyaml_load_file(const char *filename) { + FILE *file = fopen(filename, "rb"); + if (!file) return NULL; + fseek(file, 0, SEEK_END); + long length = ftell(file); + rewind(file); + char *content = (char*)malloc(length + 1); + if (!content) { + fclose(file); + return NULL; + } + fread(content, 1, length, file); + content[length] = '\0'; + fclose(file); + cyaml_document_t *doc = cyaml_load_string(content); + free(content); + return doc; +} + +// For demonstration, cyaml_load_string() creates a document with a single scalar node. +cyaml_document_t* cyaml_load_string(const char *yaml_string) { + cyaml_document_t *doc = (cyaml_document_t*)malloc(sizeof(cyaml_document_t)); + if (!doc) return NULL; + doc->root = (cyaml_node_t*)malloc(sizeof(cyaml_node_t)); + if (!doc->root) { + free(doc); + return NULL; + } + doc->root->type = CYAML_NODE_SCALAR; + doc->root->scalar = strdup(yaml_string); + doc->root->sequence = NULL; + doc->root->sequence_size = 0; + doc->root->keys = NULL; + doc->root->values = NULL; + doc->root->mapping_size = 0; + return doc; +} + +void cyaml_document_destroy(cyaml_document_t *doc) { + if (!doc) return; + // For this demonstration, assume only a scalar root node exists. + if (doc->root) { + if (doc->root->scalar) + free(doc->root->scalar); + free(doc->root); + } + free(doc); +} + +const cyaml_node_t* cyaml_document_get_root(const cyaml_document_t *doc) { + if (!doc) return NULL; + return doc->root; +} + +/* --- Node Querying and Access --- */ + +cyaml_node_type_t cyaml_node_get_type(const cyaml_node_t *node) { + if (!node) return CYAML_NODE_UNDEFINED; + return node->type; +} + +const char* cyaml_node_as_string(const cyaml_node_t *node) { + if (!node || node->type != CYAML_NODE_SCALAR) return NULL; + return node->scalar; +} + +int cyaml_node_as_int(const cyaml_node_t *node) { + if (!node || node->type != CYAML_NODE_SCALAR) return 0; + return atoi(node->scalar); +} + +double cyaml_node_as_double(const cyaml_node_t *node) { + if (!node || node->type != CYAML_NODE_SCALAR) return 0.0; + return atof(node->scalar); +} + +// Dummy mapping lookup: searches keys in a mapping node. +const cyaml_node_t* cyaml_node_get(const cyaml_node_t *node, const char *key) { + if (!node || node->type != CYAML_NODE_MAPPING) return NULL; + for (size_t i = 0; i < node->mapping_size; i++) { + if (strcmp(node->keys[i], key) == 0) { + return node->values[i]; + } + } + return NULL; +} + +size_t cyaml_node_size(const cyaml_node_t *node) { + if (!node) return 0; + if (node->type == CYAML_NODE_SEQUENCE) + return node->sequence_size; + if (node->type == CYAML_NODE_MAPPING) + return node->mapping_size; + return 0; +} + +const cyaml_node_t* cyaml_node_index(const cyaml_node_t *node, size_t index) { + if (!node) return NULL; + if (node->type == CYAML_NODE_SEQUENCE && index < node->sequence_size) + return node->sequence[index]; + return NULL; +} + +/* --- YAML Emitting --- */ + +cyaml_emitter_t* cyaml_emitter_create(void) { + cyaml_emitter_t *emitter = (cyaml_emitter_t*)malloc(sizeof(cyaml_emitter_t)); + if (!emitter) return NULL; + emitter->buffer = (char*)malloc(CYAML_EMITTER_INITIAL_CAPACITY); + if (!emitter->buffer) { + free(emitter); + return NULL; + } + emitter->buffer[0] = '\0'; + emitter->size = 0; + emitter->capacity = CYAML_EMITTER_INITIAL_CAPACITY; + return emitter; +} + +// Internal helper to append text to the emitter's buffer. +static int cyaml_emitter_append(cyaml_emitter_t *emitter, const char *str) { + if (!emitter || !str) return -1; + size_t len = strlen(str); + if (emitter->size + len + 1 > emitter->capacity) { + size_t new_capacity = emitter->capacity * 2; + while (emitter->size + len + 1 > new_capacity) { + new_capacity *= 2; + } + char *new_buffer = (char*)realloc(emitter->buffer, new_capacity); + if (!new_buffer) return -1; + emitter->buffer = new_buffer; + emitter->capacity = new_capacity; + } + memcpy(emitter->buffer + emitter->size, str, len + 1); + emitter->size += len; + return 0; +} + +// A simple emitter that outputs the root scalar. +int cyaml_emitter_emit(cyaml_emitter_t *emitter, const cyaml_document_t *doc) { + if (!emitter || !doc) return -1; + if (doc->root && doc->root->type == CYAML_NODE_SCALAR) { + return cyaml_emitter_append(emitter, doc->root->scalar); + } + return -1; +} + +int cyaml_emitter_to_file(cyaml_emitter_t *emitter, const char *filename) { + if (!emitter || !filename) return -1; + FILE *file = fopen(filename, "w"); + if (!file) return -1; + fwrite(emitter->buffer, 1, emitter->size, file); + fclose(file); + return 0; +} + +char* cyaml_emitter_to_string(cyaml_emitter_t *emitter) { + if (!emitter) return NULL; + return strdup(emitter->buffer); +} + +void cyaml_emitter_destroy(cyaml_emitter_t *emitter) { + if (!emitter) return; + if (emitter->buffer) + free(emitter->buffer); + free(emitter); +} + +#endif // CYAML_IMPLEMENTATION + +#endif // CYAML_H