From 375132290ce0fb2d7372e0f4d02617f735033e4f Mon Sep 17 00:00:00 2001 From: David Moeller Date: Wed, 17 Jan 2024 19:26:47 +0100 Subject: [PATCH 1/2] Grobe Struktur + Spiel Template --- .gitmodules | 3 + Unity | 1 + build/artifacts/release/project.out | Bin 17280 -> 17000 bytes build/release/dependencies/game100.d | 1 + build/release/dependencies/main.d | 5 +- .../dependencies/testRunnerGenerator.d | 5 ++ .../dependencies/testRunnerGeneratorSmall.d | 3 + .../testRunnerGeneratorWithMocks.d | 5 ++ build/release/dependencies/testsample_cmd.d | 5 ++ build/release/out/c/game100.o | Bin 0 -> 1880 bytes build/release/out/c/main.o | Bin 3368 -> 3072 bytes build/release/out/c/testRunnerGenerator.o | Bin 0 -> 6776 bytes .../release/out/c/testRunnerGeneratorSmall.o | Bin 0 -> 3736 bytes .../out/c/testRunnerGeneratorWithMocks.o | Bin 0 -> 7808 bytes build/release/out/c/testsample_cmd.o | Bin 0 -> 4680 bytes build/release/project.out | Bin 17280 -> 17000 bytes build/test/cache/defines_dependency.yml | 3 + build/test/cache/test_template.c | 66 ++++++++++++++ build/test/dependencies/cmock.d | 6 ++ build/test/dependencies/game100.d | 1 + build/test/dependencies/test_template.d | 2 + .../test/dependencies/test_template_runner.d | 4 + build/test/dependencies/unity.d | 2 + build/test/out/c/cmock.o | Bin 0 -> 15240 bytes build/test/out/c/game100.o | Bin 0 -> 6344 bytes build/test/out/c/test_template.o | Bin 0 -> 4104 bytes build/test/out/c/test_template_runner.o | Bin 0 -> 11176 bytes build/test/out/c/unity.o | Bin 0 -> 62128 bytes build/test/preprocess/files/test_template.c | 66 ++++++++++++++ .../test/preprocess/includes/test_template.c | 2 + build/test/runners/test_template_runner.c | 83 ++++++++++++++++++ src/main/c/Template/game100.c | 11 +++ src/main/c/Template/game100.h | 7 ++ src/main/c/add_student.c | 7 -- src/main/c/add_student.h | 6 -- src/main/c/add_subject.c | 7 -- src/main/c/add_subject.h | 6 -- src/main/c/main.c | 30 +++---- src/main/c/modify_student.c | 7 -- src/main/c/modify_student.h | 6 -- src/main/c/modify_subject.c | 7 -- src/main/c/modify_subject.h | 6 -- src/main/c/show_statistics.c | 7 -- src/main/c/show_statistics.h | 6 -- test/test_template.c | 36 ++++++++ 45 files changed, 327 insertions(+), 85 deletions(-) create mode 100644 .gitmodules create mode 160000 Unity create mode 100644 build/release/dependencies/game100.d create mode 100644 build/release/dependencies/testRunnerGenerator.d create mode 100644 build/release/dependencies/testRunnerGeneratorSmall.d create mode 100644 build/release/dependencies/testRunnerGeneratorWithMocks.d create mode 100644 build/release/dependencies/testsample_cmd.d create mode 100644 build/release/out/c/game100.o create mode 100644 build/release/out/c/testRunnerGenerator.o create mode 100644 build/release/out/c/testRunnerGeneratorSmall.o create mode 100644 build/release/out/c/testRunnerGeneratorWithMocks.o create mode 100644 build/release/out/c/testsample_cmd.o create mode 100644 build/test/cache/defines_dependency.yml create mode 100644 build/test/cache/test_template.c create mode 100644 build/test/dependencies/cmock.d create mode 100644 build/test/dependencies/game100.d create mode 100644 build/test/dependencies/test_template.d create mode 100644 build/test/dependencies/test_template_runner.d create mode 100644 build/test/dependencies/unity.d create mode 100644 build/test/out/c/cmock.o create mode 100644 build/test/out/c/game100.o create mode 100644 build/test/out/c/test_template.o create mode 100644 build/test/out/c/test_template_runner.o create mode 100644 build/test/out/c/unity.o create mode 100644 build/test/preprocess/files/test_template.c create mode 100644 build/test/preprocess/includes/test_template.c create mode 100644 build/test/runners/test_template_runner.c create mode 100644 src/main/c/Template/game100.c create mode 100644 src/main/c/Template/game100.h delete mode 100644 src/main/c/add_student.c delete mode 100644 src/main/c/add_student.h delete mode 100644 src/main/c/add_subject.c delete mode 100644 src/main/c/add_subject.h delete mode 100644 src/main/c/modify_student.c delete mode 100644 src/main/c/modify_student.h delete mode 100644 src/main/c/modify_subject.c delete mode 100644 src/main/c/modify_subject.h delete mode 100644 src/main/c/show_statistics.c delete mode 100644 src/main/c/show_statistics.h create mode 100644 test/test_template.c diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..cbe9089 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Unity"] + path = Unity + url = https://github.com/ThrowTheSwitch/Unity.git diff --git a/Unity b/Unity new file mode 160000 index 0000000..b4f6557 --- /dev/null +++ b/Unity @@ -0,0 +1 @@ +Subproject commit b4f65573f75564d4b5d33e1812a31946191620d1 diff --git a/build/artifacts/release/project.out b/build/artifacts/release/project.out index a92a15db7d1650bd50cad334707bc56d1a6c716f..b89a690897d0e25269ccc3e021c3b5021ada8aad 100755 GIT binary patch delta 1799 zcmZuxZA@EL7(Vxw@=+<=(qbtxXdC$)T-w5bBCuPq+r_ZRq$qw&hND{=DG<4fj0{Tx zj5MqZ^O(r~jO~ws#2>?EnI;;U%qd3WG-mOKnT*V&2~0P^fC^sUb3aCGyve!GbDrlt z&pG#;d+*2u6&s_bis;$e^Cfq5S2akwu4-@w#p*g}x!XZUpP^XF_OVs&$D>b{kq=*> zzcoGgif*vDCh*$%nxQi_ox}P4^LAVGv}Q=3{vPD<5q-G?_1Cf1@D0{wm_v79{1@I0 zlEO#oQ_>KMUHL~8foljKlQ~29pv)g9yhr9agddf;op7JbiwNgs?jpQS;@%BDd=sJz zLHdwP84GoT5qlPHlirQdt;A62_`+L=M>6jN=c!u_ z;_~QLw?MDv%2BmYx@v@UFZi*w9Z|gLT}P|b)X4BUN*~V>MNul`Cl76P^A)N2MKB;F zXk#Bh>C)nQdhTECeE1g#m?HsaL5*F5+tiUqUU+yrd~$2jyM1AEcq{xF5bD;E#pCID zPa{OedtPXX)W2MUkmvd4@NG|fbNCOB&lBEm=Obk;Ah)#?@9?8*$+4Mj*y8Iu8X==pyGn(uRO~91vQoLLI2{hw=MVPx zbP4`lwTkr)1_YGfjT(Lz#s6!i0Wey7x=sapPp~YjYZLnV_md-_p3pqi3YY?|`!`V> z1H1wFKHv|4Hvpe}Ac{SJ`iG+U6JRA|Z3DIf=1>R;fOUZP0LLhN&Ss~s;CY*w`VlYL z3PTLUFi@^uCLjW|WYEdf>XifJEVN>nt`OpoH;p+%H|Y~Kxm0RWG9o@%mIIbS_#?lK zxJdH91}p_Xch@)S6WiqiI83w#&G8Vg*c+28VU7-{#Wtrg%9-4c;pws(de#{IzAP;P z5U)5{i~3oTJoVBb6JoHzl^Jbt4N=q#zUwmMWmlGE4k{=xeRj1}K~fRACUr8=rTYK6 zUqY8cW;7e8f2Y(>$LaSZ-H76swkhRgp=s%0r6TEOf?orTQt@V`!J>y}&Oi*hWR!ia zQnm-%_L-fZf@?(X(&QxLnb*AqVPlQnkTSpkyu?WK(*3f$qi5YO}=) zE?Hsx{v5`hDzo-=aP4@WHsQJIchiDhfnN3)I?)yM!>5klslj^bkI|_r1@0=_z^MVj zALO`$EzONhoi5hJ?n488L4W7*lfB1;KwmG8xL?Ja?mS#j8;s7>dbITCG+x=y>eQov zmphv~Kz)QS*X7|6jxnh3l8QcjnJYIiHu-r} zM*5C;sc`8(Kfl|Xz5C-m14Bcf*sB_$ z|E^n67r(bsPAvQda%)TJn7sFTcB(AdX7iZdb{Xe4o&EIXkgGMiEf|VKU7g`b_clqA z2$!4MJ31#cYH-bsO-LJ9W`yK;Bvo45VJato1YDPf51aSz2Tm|}pC1_$5a2aq1 za2>E8*aJKRya^=u!U&;e_Z(pnEqB|6RkYb%9P9f-Q7p{SMjww|x(J+!`4;9W z^ujo4G+XwI4SAWZrmSpinf3wZ`w#Ii!aojwIa<>4V|kf|8iAEy1+HUWz?~j+fC-7` z9^x;6Kkxv58EUs^eh8d2nJv8{HP7*7ABLPl8g-Z3l9z2SwsjeBl3B*oLrs;O*giI&>Y5F`>w~_RAtJOLV(qB8ZekWcFk(lTauhrR#m;z!U z7WNWgWN;uI^mDJ>nT1FfaS{^HWDR2U*-E=`h`KB7&NZxpXeADYo|(tm^)xxxqB|ch$|n>6ZUFy?`F~*@a^Itsl+MALiHI?O@m7BXWVaRhiFeVwKy3~66jnP%*vTYPrs zo0==212)vp0@%y0Qbw{86^p^hkao7%$>2AhN74Lc`A>B4wmSLf#K@cHjmM;AR&Md@;XWw{>6>yxgX zUD42{Kwx=GbA7{FkK~am$BXk?^gVyuv`J0SQNJrcy}EO8gvao*$^DD#GsH>*{klfV z)!!$4i(+k)=o09YwUSkT$93FDgMO1tm4WY Tnp0nud-Msun<3ELCA0nor@4RB diff --git a/build/release/dependencies/game100.d b/build/release/dependencies/game100.d new file mode 100644 index 0000000..24915ff --- /dev/null +++ b/build/release/dependencies/game100.d @@ -0,0 +1 @@ +build/release/out/c/game100.o: src/main/c/Template/game100.c diff --git a/build/release/dependencies/main.d b/build/release/dependencies/main.d index 74fb41b..4dccf23 100644 --- a/build/release/dependencies/main.d +++ b/build/release/dependencies/main.d @@ -1,3 +1,2 @@ -build/release/out/c/main.o: src/main/c/main.c src/main/c/add_subject.h \ - src/main/c/modify_subject.h src/main/c/add_student.h \ - src/main/c/modify_student.h src/main/c/show_statistics.h +build/release/out/c/main.o: src/main/c/main.c \ + src/main/c/Template/game100.h diff --git a/build/release/dependencies/testRunnerGenerator.d b/build/release/dependencies/testRunnerGenerator.d new file mode 100644 index 0000000..081b804 --- /dev/null +++ b/build/release/dependencies/testRunnerGenerator.d @@ -0,0 +1,5 @@ +build/release/out/c/testRunnerGenerator.o: \ + src/Unity/test/testdata/testRunnerGenerator.c \ + src/Unity/test/testdata/../../src/unity.h \ + src/Unity/test/testdata/../../src/unity_internals.h \ + src/Unity/test/testdata/Defs.h diff --git a/build/release/dependencies/testRunnerGeneratorSmall.d b/build/release/dependencies/testRunnerGeneratorSmall.d new file mode 100644 index 0000000..44e26e5 --- /dev/null +++ b/build/release/dependencies/testRunnerGeneratorSmall.d @@ -0,0 +1,3 @@ +build/release/out/c/testRunnerGeneratorSmall.o: \ + src/Unity/test/testdata/testRunnerGeneratorSmall.c src/Unity/src/unity.h \ + src/Unity/src/unity_internals.h src/Unity/test/testdata/Defs.h diff --git a/build/release/dependencies/testRunnerGeneratorWithMocks.d b/build/release/dependencies/testRunnerGeneratorWithMocks.d new file mode 100644 index 0000000..2fad802 --- /dev/null +++ b/build/release/dependencies/testRunnerGeneratorWithMocks.d @@ -0,0 +1,5 @@ +build/release/out/c/testRunnerGeneratorWithMocks.o: \ + src/Unity/test/testdata/testRunnerGeneratorWithMocks.c \ + src/Unity/test/testdata/../../src/unity.h \ + src/Unity/test/testdata/../../src/unity_internals.h \ + src/Unity/test/testdata/Defs.h src/Unity/test/testdata/mockMock.h diff --git a/build/release/dependencies/testsample_cmd.d b/build/release/dependencies/testsample_cmd.d new file mode 100644 index 0000000..a7578ff --- /dev/null +++ b/build/release/dependencies/testsample_cmd.d @@ -0,0 +1,5 @@ +build/release/out/c/testsample_cmd.o: \ + src/Unity/test/expectdata/testsample_cmd.c \ + src/Unity/test/expectdata/../../src/unity.h \ + src/Unity/test/expectdata/../../src/unity_internals.h \ + src/Unity/test/testdata/CException.h diff --git a/build/release/out/c/game100.o b/build/release/out/c/game100.o new file mode 100644 index 0000000000000000000000000000000000000000..96df510a52b4221b8a8fc323c2caed7b60c0f3ce GIT binary patch literal 1880 zcmbtU%}*0i5TB(8ihyV|(O^hVMiY5%NiPsT3Qa#^8ZkfnIZ$J4;|}O&F7-!x#6lu-k~yA_{q7eB%8;er#wN9TfI3v;s^KXL~iW zD^nk%o(;m!lRg6isl<*F&Zj*al?tmni;fw8&P|s^tu~}mhZJ3Uv6UzWpWzUx{qDsBmEaoV>I1q{YK;vBbtj?@2kHV zlW3vd<$4~GaHN`6RyfUtV)>@tRQMf*>wn0Ovg=IW|2{fU&VP;1U@YZ~&lpwU{jZV| zBYpo_v=L^;d`R3=I-M_09M60KjV#CgKF5`qtotsZja~)){9jZ|T5)FFf7V~4KsojJ zL*?*-9TnH(=@ur<-&6zPzR>*XHR5=lf70Hxm8lACC{F+ENJ2d2)Mt+nd{hNJB_&2G TT@Ru8CdI#0pzL`@f*$`D1cIN0 literal 0 HcmV?d00001 diff --git a/build/release/out/c/main.o b/build/release/out/c/main.o index 4dda9971f87489852be377344d641c7fe9b055ec..16198218217db8315d7074462c33d57f25c522ea 100644 GIT binary patch delta 667 zcmZXQJ4ixN7{~89rq_GDh7yrAND*Q5e&KD&t4UEqL**begw&-6y%VCPk{(19C|^)R zLqUUMOM5PXP1V#Cv=uGUQbSuV6eZsQ2V)N@yRryn`Vede(E+;zIwa*}moz6`7x$G>Yp2 H+)3_V=gN%~ delta 896 zcmZpWSRpk*gDHb^qLvxszln*xOyz|We<~a7U;u&_AmX(%65AY!t&PN%pRCNN%Jk#k zWG_aCdbh;n426u$ysFZ)!+X+G^B6dd^uS_Csfk5NshK4pA!EJZlG2payb@HECU9Y7 z#il^f#FEV7lFaPXJcY!(s?cO!>m@j6fk*K7lqS zXI?gDJ4POMj>#VxB_|tjvP@pX^n}rU@Q zfBr+jMD?B=H$Q zHVA+W0%66;h3w*%*Fi!+umDUVWS>L%OVGr>L-{KvPh=O@T!SVHbriz}G;#IG3)%kz zqkSQVIcEVVY=L0Mhf_J=YJN|2myz8vJC9Y$#yBL*LX1sfMck0=h z$^0}~la@-6T3Kn3AN&yUBk=%8NFY_HLR6xu1yv#t4|(7r5*6ZsN|gYWLLV$-sho4? z9`E?>ZZ;9ex^w4#=R4<~`#Wd-o$UPVzMdXN(!;*Onk_;Z+dk5KpBAsv>>%rB|2g#8 z{}yxW@8vH4V_^Nooh#X$^_%abe&hGQBi+VxyRSDtfjaEq?!bNRmBH=9fqNu(HJak}>~`)-2qnAy=7qTFopw(r2d~_%1K6RLU)0OdRzo`%+N{70uk2i~+iM{T#`2*VaP1C0796i`SWSlgcp!XBJl+MVWa8XcZ)d{hvIT8O%M}WXLn%Gg-I`)*d%DI~` zEb|2pxKXO{1ZV@#v8FWJNt6)j?<@M;OQfsZ24_z@Yo=uxLnrm5c5KPCVP<@7p`eZF zBTr~cXP3rCk85eywfGWWIb#MxCr8HhkumMqnOx!N`9aMxSGhLFORLUtZKmcqbv`sY z2C)r~PA2t1%0^Yk)xTbuRWpt2!UR ztTjpT4I{T`&Uk@~J;CN?W~Q`b#g)(wLTyqX)su--C|aqPhG8K`_2J_YE;@t9eNYCV z;HjNkC^EPSwh-%uf`a!XO3&Ik)^l;7=aB>VKd=EO=25_~poltqaNw1FGyVJXK#5Zx zQNWT?H;e@GX*S2S*hTMl(c|2sbn^dt7yYd+`hRuN58$T)WDFlPzItR=wg>?ZvRwD^6KE z{Qg!@@bM(IN-z6lD+ow0+uwrYJUtYPANMHA=b+%ZS7ic#cK9^l=!fjZ`U3V8lm}zu z#k&LL>rfDizYe9{c;D%O{}FKXgZ-e0`vL0rptSSz0pQ601=J|S?}H83j(-GjETi2yqz`Qp`uw)&-;CFB-nj zeO9#1pusH1u0CH!Z+@WgFl&`Gk-)a0Q2r`>MGbcTg1Nef8uhnSqu$dH zh!pW9XJeWYwD%!N-iAYV z%uM4nuNa{fFw;+a)vylv{8^hbAAh`v-e{LLS5rXU z3dMupYn0DRT=g>=tTxiSPpd)9K*n4>5i`p1;I!^s^=X{Jn#poftnJ&j3y^2+i~DsL39axH``x3jZU? zKcnE!$#y>G=ZnCl`3w|3`FTyjFUj_12R}Ds{P?>6Ifmo>{7|;vkNJu3LrsnY)siBR zX$7Y|@>>c{`QOV5PWj)D6rA$EEd{6i@2?6@`QMI$Q$BYzw!RoYp3puAPulVPrSBV@#z03F!cXRG_b}g-miF>mhBJZcu6gngPP)w$1^{@ zi$pKi@Nj|LmOmXa-$h&cJ#-Y6AYX!lxTGN@WJm=huJ%6&IQmrSNeSRLH!c`!T<|-L zK9ylIvfo`_X+-gpk4b5tBtX{x#7hJOA^d9FutS*RDs@!vctU7r6fTYo6?B{oD18mIFuzc|a~0u45mz m5d}5r%&fkN;Q7DleCQTqgRP8=h`~Ly*RL;Nv literal 0 HcmV?d00001 diff --git a/build/release/out/c/testRunnerGeneratorSmall.o b/build/release/out/c/testRunnerGeneratorSmall.o new file mode 100644 index 0000000000000000000000000000000000000000..af61e66f131e799c753f657d3255b97a8ac88183 GIT binary patch literal 3736 zcmbuBPiP!f9LL{gYg)BUVyQKfDg%O5u|pC9QmK;NxJiU1t=SC~RMyF6lHGK7W}SIM zvugcAK?qUUgNFzndhp`GyMngGLQ8M<-a`)xMZ6R}6p7T|_s#odr!TXq;1Axs_ddTr z@9+F(J}wle`!X59k`b?pZjY%D!;f~`ld3r>2E+mJ=it+SFU+q0Hhcb$q4jfH8-=a) zYqz2AT))D)&O6)9YY#z(0sb58OS3fKMTDFE;uU%dH8hWValDt}r5=h6HNDx*-1mpb z;)fH;>~VUE+4ZZJFiyO-?t%=DTyGB{%C&lEmEBNUrJ5f#maJ)~-q=a=uJ!tg=LhbR znDc|C)38dej9S)dC-ja=Yd-Rrmt7}V^3Qrnm6(~Ddf9qzVKMS#WF5CB?9pRmk?M_o zG(KvNPT1qm#~kb0LuH5x7Ctk#AZTwdgJr2eun&;T`|~2RHk29Jzjt4UHsS~|6o{$| z14EznO&#bjk%4B|K8U(Htj~A#Z^vq(HkkFruKvRZ=)Zn|{>NSP!=$^Z^-rSa@u>;j zT`-a~-633r6x|VGqgscnw;i({ugM~GY8O3RdI{Y2h&%Vv^x4!m7H7z(c)wRxo%;O@ zy{x(gX?*WasO)jlJ0&X~-U*3hMgI=LRZIa)*;6_e)V-y0Jy*%7qrqzzJTX>?x{IDE(%IXw>2klt`^= zo)u(nB<@_}tkVupIbrCAV!^A+wrKd?%4!qQLTT6`y=ya-=~GNN(W_W-M}#f6x*aJV z>vYZa;%|Xkz`WzdqvvQMfh@ciIgPofx#$MFJM)&nUkl$?-1GfZw(i9;ruF#N4p6zP z`E-I0COFt%j8!4Ze|@fpp{I2PGJ z5C?^2Qa6}$zI)f;oTol9IOnMg2Io9=+2EX~ZW)~O)Rw_H?+ho_i@9=snJ_r#k+Q)# zUkE#FH>I;kwG86A#;w3@IJR`xq_CG9=?Hr<422!|ai{7xo32MX&zG)E|2D@$=~U0? z{)!jbt-x>5>(eG5L~?7D<-lpWdPV=QvdA4v>Nmnn>i!FQy{tC6>Tcprusz!e{bAbF z4*1TY$=@sdyFi|$0&e~RteOMCn8d^{5<^VWzo8A0E0Th_CI$HerpdbtJ^P!xY>t0i z`;WpYAvd%k=9d)q=Q>YHZYS;jNrNf2^ThDiW6qy}MY^Q${xe&p28J^IEe%@6JWPM= zPulr!>R+pU+8^f+#QuE#X=9U_=;#Bzt>=Mrd?dvmG0n3lB-ZqW{?wSi(WQT@bpHz& Mj6}xO_S5wL7gc}(6#xJL literal 0 HcmV?d00001 diff --git a/build/release/out/c/testRunnerGeneratorWithMocks.o b/build/release/out/c/testRunnerGeneratorWithMocks.o new file mode 100644 index 0000000000000000000000000000000000000000..f3bc56b3db9be32765dbfef9ccd5c6d0272ca1a9 GIT binary patch literal 7808 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 Camxw- literal 0 HcmV?d00001 diff --git a/build/release/out/c/testsample_cmd.o b/build/release/out/c/testsample_cmd.o new file mode 100644 index 0000000000000000000000000000000000000000..29949eae70eb4905072ad825b9b5d37c2b66e90d GIT binary patch literal 4680 zcmcInUuauZ7(Z#+&DFK*=D)#)L@CpvyQXDBH|I#&CXEm_Z4;amjkn3Q$xLqIy*HQ+ z>K>}XD8=cMh(7q_d{75YPy{Vbtbz<=A}BuSgW!WmWd(~w=l7j^zV!1X7dAFOI63G1 z&i8%icYgPrdrwXz(#ft+NRWlZL9yN=RERJ8*V{4KjER2HCoXQe^{;H|CVx&n zevZJ@{BHxP#RpnLsl^^_r%w9SvaD`GWWh(~mqIki!Z6(nOZE72Vg;$q&#efrcYQ+a z*9R98E2&rGAC7~=NB3gNMNABHeeo&Q(w%crNw?C}FhS3H&W=p)!hDy>bk%3Nsxe)a zOjlb>@57YWp6T8zV7lfrUDKGZNv3Npru+UMru(meY13!g)R;CU(`JjQOnFtB%6;(F zInQ#vg6Wy}V8b;lwX$X81$J_oqLnN;u9qp6?3qk81DMF#Mbj>ntwJQx$Xhk9RJCtw zc~4pSs$Jmjlm{@U<3O@ncf2AG5ffu$`y+Q|r|Y&?kL)w{7}4Fsb=ez!ZX{|%_ZTBX zJ`S=<>xSO}D0sdm4rN7`5KD-Kp`hL9S0Z$LQiK`j|AYk0K5@^zZ8JK8GwHrfPWi+{~mzL1LdE^T)t9(^XOQv<;eq>n@ArXji+;m zlgX(>CYOnirV}{`FrD%0v$g=YY)w?mk_|_-ok z@l4$;AF5ZTEyqtZR<-lxdcl$;=vZHq121_d?1E_RMBMS4p)@b~MxSNG`xrh5Z8SWZ zc=pME2thFP-vWj3D1u<*kNX)7Kc#4h<9@|Bw1a-t!ndpbgBngeG6DEw8lG1DCsmE} zZG}QSk29RF_XNX{JNdt^a9S6B!_nUME4iKtMFj#?7`h1O8^u#S3WL<G?<01&wsU=a2s?D4w2w$GO4p2qwi^5yP|G3q_B|oSmdPqxRjO WFwRZa58o-B;vZ7{Jsu2gJ^o+V716Z- literal 0 HcmV?d00001 diff --git a/build/release/project.out b/build/release/project.out index a92a15db7d1650bd50cad334707bc56d1a6c716f..b89a690897d0e25269ccc3e021c3b5021ada8aad 100755 GIT binary patch delta 1799 zcmZuxZA@EL7(Vxw@=+<=(qbtxXdC$)T-w5bBCuPq+r_ZRq$qw&hND{=DG<4fj0{Tx zj5MqZ^O(r~jO~ws#2>?EnI;;U%qd3WG-mOKnT*V&2~0P^fC^sUb3aCGyve!GbDrlt z&pG#;d+*2u6&s_bis;$e^Cfq5S2akwu4-@w#p*g}x!XZUpP^XF_OVs&$D>b{kq=*> zzcoGgif*vDCh*$%nxQi_ox}P4^LAVGv}Q=3{vPD<5q-G?_1Cf1@D0{wm_v79{1@I0 zlEO#oQ_>KMUHL~8foljKlQ~29pv)g9yhr9agddf;op7JbiwNgs?jpQS;@%BDd=sJz zLHdwP84GoT5qlPHlirQdt;A62_`+L=M>6jN=c!u_ z;_~QLw?MDv%2BmYx@v@UFZi*w9Z|gLT}P|b)X4BUN*~V>MNul`Cl76P^A)N2MKB;F zXk#Bh>C)nQdhTECeE1g#m?HsaL5*F5+tiUqUU+yrd~$2jyM1AEcq{xF5bD;E#pCID zPa{OedtPXX)W2MUkmvd4@NG|fbNCOB&lBEm=Obk;Ah)#?@9?8*$+4Mj*y8Iu8X==pyGn(uRO~91vQoLLI2{hw=MVPx zbP4`lwTkr)1_YGfjT(Lz#s6!i0Wey7x=sapPp~YjYZLnV_md-_p3pqi3YY?|`!`V> z1H1wFKHv|4Hvpe}Ac{SJ`iG+U6JRA|Z3DIf=1>R;fOUZP0LLhN&Ss~s;CY*w`VlYL z3PTLUFi@^uCLjW|WYEdf>XifJEVN>nt`OpoH;p+%H|Y~Kxm0RWG9o@%mIIbS_#?lK zxJdH91}p_Xch@)S6WiqiI83w#&G8Vg*c+28VU7-{#Wtrg%9-4c;pws(de#{IzAP;P z5U)5{i~3oTJoVBb6JoHzl^Jbt4N=q#zUwmMWmlGE4k{=xeRj1}K~fRACUr8=rTYK6 zUqY8cW;7e8f2Y(>$LaSZ-H76swkhRgp=s%0r6TEOf?orTQt@V`!J>y}&Oi*hWR!ia zQnm-%_L-fZf@?(X(&QxLnb*AqVPlQnkTSpkyu?WK(*3f$qi5YO}=) zE?Hsx{v5`hDzo-=aP4@WHsQJIchiDhfnN3)I?)yM!>5klslj^bkI|_r1@0=_z^MVj zALO`$EzONhoi5hJ?n488L4W7*lfB1;KwmG8xL?Ja?mS#j8;s7>dbITCG+x=y>eQov zmphv~Kz)QS*X7|6jxnh3l8QcjnJYIiHu-r} zM*5C;sc`8(Kfl|Xz5C-m14Bcf*sB_$ z|E^n67r(bsPAvQda%)TJn7sFTcB(AdX7iZdb{Xe4o&EIXkgGMiEf|VKU7g`b_clqA z2$!4MJ31#cYH-bsO-LJ9W`yK;Bvo45VJato1YDPf51aSz2Tm|}pC1_$5a2aq1 za2>E8*aJKRya^=u!U&;e_Z(pnEqB|6RkYb%9P9f-Q7p{SMjww|x(J+!`4;9W z^ujo4G+XwI4SAWZrmSpinf3wZ`w#Ii!aojwIa<>4V|kf|8iAEy1+HUWz?~j+fC-7` z9^x;6Kkxv58EUs^eh8d2nJv8{HP7*7ABLPl8g-Z3l9z2SwsjeBl3B*oLrs;O*giI&>Y5F`>w~_RAtJOLV(qB8ZekWcFk(lTauhrR#m;z!U z7WNWgWN;uI^mDJ>nT1FfaS{^HWDR2U*-E=`h`KB7&NZxpXeADYo|(tm^)xxxqB|ch$|n>6ZUFy?`F~*@a^Itsl+MALiHI?O@m7BXWVaRhiFeVwKy3~66jnP%*vTYPrs zo0==212)vp0@%y0Qbw{86^p^hkao7%$>2AhN74Lc`A>B4wmSLf#K@cHjmM;AR&Md@;XWw{>6>yxgX zUD42{Kwx=GbA7{FkK~am$BXk?^gVyuv`J0SQNJrcy}EO8gvao*$^DD#GsH>*{klfV z)!!$4i(+k)=o09YwUSkT$93FDgMO1tm4WY Tnp0nud-Msun<3ELCA0nor@4RB diff --git a/build/test/cache/defines_dependency.yml b/build/test/cache/defines_dependency.yml new file mode 100644 index 0000000..b227090 --- /dev/null +++ b/build/test/cache/defines_dependency.yml @@ -0,0 +1,3 @@ +--- +src/main/c/Template/game100.c: +- TEST diff --git a/build/test/cache/test_template.c b/build/test/cache/test_template.c new file mode 100644 index 0000000..ae399bd --- /dev/null +++ b/build/test/cache/test_template.c @@ -0,0 +1,66 @@ +#include "test/../src/main/c/Template/game100.h" + + + + + + + + +void setUp(void){ + + + +} + +void tearDown(void){ + +} + + + + + +void test_input_all_5(void){ + + + + int result; + + + + + + result = some_function(5, 5); + + + + + + TEST_ASSERT_EQUAL_INT(6, result); + +} + + + + + +void test_ignore_rest_from_division(void){ + + + + int result; + + + + + + result = some_function(5, 6); + + + + + + TEST_ASSERT_EQUAL_INT(5, result); + +} diff --git a/build/test/dependencies/cmock.d b/build/test/dependencies/cmock.d new file mode 100644 index 0000000..82b64c9 --- /dev/null +++ b/build/test/dependencies/cmock.d @@ -0,0 +1,6 @@ +build/test/out/c/cmock.o: \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.c \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.h \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock_internals.h \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/dependencies/game100.d b/build/test/dependencies/game100.d new file mode 100644 index 0000000..e3fe8d5 --- /dev/null +++ b/build/test/dependencies/game100.d @@ -0,0 +1 @@ +build/test/out/c/game100.o: src/main/c/Template/game100.c diff --git a/build/test/dependencies/test_template.d b/build/test/dependencies/test_template.d new file mode 100644 index 0000000..7b1658f --- /dev/null +++ b/build/test/dependencies/test_template.d @@ -0,0 +1,2 @@ +build/test/out/c/test_template.o: test/test_template.c \ + test/../src/main/c/Template/game100.h diff --git a/build/test/dependencies/test_template_runner.d b/build/test/dependencies/test_template_runner.d new file mode 100644 index 0000000..c4140c0 --- /dev/null +++ b/build/test/dependencies/test_template_runner.d @@ -0,0 +1,4 @@ +build/test/out/c/test_template_runner.o: \ + build/test/runners/test_template_runner.c \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/dependencies/unity.d b/build/test/dependencies/unity.d new file mode 100644 index 0000000..770a033 --- /dev/null +++ b/build/test/dependencies/unity.d @@ -0,0 +1,2 @@ +build/test/out/c/unity.o: src/Unity/src/unity.c src/Unity/src/unity.h \ + src/Unity/src/unity_internals.h diff --git a/build/test/out/c/cmock.o b/build/test/out/c/cmock.o new file mode 100644 index 0000000000000000000000000000000000000000..93e6055ef9f4d1becf9338679ba9ec024cb500ca GIT binary patch literal 15240 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 C(!-Dd literal 0 HcmV?d00001 diff --git a/build/test/out/c/test_template.o b/build/test/out/c/test_template.o new file mode 100644 index 0000000000000000000000000000000000000000..c6b0a9652b647445fafd221b59c6fced07d629ef GIT binary patch literal 4104 zcmbtWTTC2P7(TPZaB<7BTxuaSc8%9+cYubX#nMt>p+qcL*!ZAknB5&6)tYEly)OuRs%(fZ=M4}I{##0OuDFGfk~|DQQ$_HcIaLH}gV`Ty^~ zoa_Iec`Y|HnNSqMNg?M+P2wmax9_R(qm&&bM@bj?qwT)G@|U)M*?IAs81~Zj-_l=e zV7`mZujsd(+kY#!zx~~ABM6@(LgAesB7f?H+88GcbHM2i01faF(oCm)gz`eOCGZL4 zl^%>u=?v?Y8)e{Bl$72Uh9V5x*r1hdpM)V=V?x{nyD&uCAt9Q;f+#JK zZxUr7>SHiBdv^&@@(g*>+sZa53(Z>r{~bc%WO|!+am96PC-Aa?eYI?tvc6fUSRN=n-z=_X z*IdW9ioWA!Js%9wD^wIKrnkb?FgPfROM)D(yKJuozF}4>#u)+=4k|vy`{YgOTXCvZ zU&&lAm-;50Voc8ljs;IIA85SwaO~ZK@{WQZq<`YXkOPTR4JLbfl7oT z%R%T>QdiZeRwXIHs>Z6MttJSZN>5e*7^{-jIDlGED&xhvyH$R{_WQJk0{}_;m#(OpGW6!WtpuoiQ~tI|hj|J2^R@TQC+bj?Lr@ z;z7b0OMzYVv2q-iR#0LNFE`=DvTS~sGac~l-wkO(z@bb>ctOBL`%M8C?fDadH-+

|3-z0j$^N3E-l2r(njk3MufR6HJq2OBU2h^r(+RN5KmrB{TxC@L!^rBP6 zXO8GLJh3`FJ@CZBlgs2~JJ8|rU9((&lf|}H;Jr7i7F*E&>@whwXCdYkh8)EPXp6SB zhFy~g=midQel$WtW{y1piwwscM_-;p_$!9=Fnoy1FV7xeaU_p_3XCx3fAt>%UpXd@ zyN3%YYuaQ&DE^7_XBlVbuzK4RcC6ah_@3+7@&i@X(Pc0&HOVF z5;A=MIs7Rw7*qD|Xa4VVL)Odw_^!n5|Ho|q7nvXKe;PjS&-XuWY;?KJ#{ZKo7~gXI lYm@zP7&&(VB73YLy@`TA^8VpFALrkUmj&pHu!~yR{~reMn>hdg literal 0 HcmV?d00001 diff --git a/build/test/out/c/test_template_runner.o b/build/test/out/c/test_template_runner.o new file mode 100644 index 0000000000000000000000000000000000000000..2442d6030a6606c7cf90b1c71f19da85bbb59afe GIT binary patch literal 11176 zcmb_i3vgUj89q0g+iV_9^XMaKpxt6Ap*FioN#9VmO_L@VnqV6sK)t=Yd-p+i@5cK` zTLg+k)KbxQWE93~iw{tg5z$dV)M`88W1InXus#M6LBa?Q;Dd@V_5aWL&+g4(>o|^Q zX74%Q_y6ZV|M}13o_mu0{lf!Qn#N?(*hW@Hl4Y!OS-BkN#WPpl))h3ID1^ra`|!R>i&LZs>QlW0yqv?hY*1h3muTL;rQ5-N4J$JY0I1XE=_mP7gJp zZ@lWPCl_ERDGquQSL2eJ&qh!p%J(fygJJI3sc=tN4^cP67uBFC(dY2$+Qq2FT@J6| zphpAEYU;_u;0$j|&S^+NMK!h_K=U`AsHgPa2z-A7v7GTT#Md0Ty z0S4wS1&|eBkb6BLzz_$X0GHM4(1pDMT;B2`^z9Y_w#|7Rz^wv|gqMT0DFLpSvmU^Q z1sI>*3-cx%n)Ok<chp<^LRThMsT$F!y= zxXx4XY@Lf-n^yCb7Jfg>zGiy`7kur(Fga1E}^vhD(`p$&6g zQJb+VsGuEb4^ag#`#2KHfY^a>j~Hh*dR#SpZ{vPZB?TS1O&6De{( zg<|s(=vfPCa|5t|=CKPvdoK4x2Va3lU+0mpTn&AlKhs_njP!yiyR=;fdx=NO?Rp>zXlCI|GbLrlI-(_2Y2=e=oUMQ#f4zto3k?`!!FPCx zgn|yrA$ABRmZtryaW*{p0T6M*&*f7wJY>Wi-?lBsWij7%VmUjR_fuAE@7mSI>fWw= z&i40qWo$o|$a(*bO3d3gVa-$&hV!{ZER#&W-S9fuCW}p)PK@hW1vj=bx+dBk%V05S zSt;-&)72fls3+PJo3!jy(TVwX&f6DrouqPFGDMHy&;&hoE${lmL^O+mGYmJE0mASA z!|E%^VE5sE3pLkErK~iRVeRrZ3^;>Wj&0^$AYu8rp5rGyV_;~wUl=Nv3Z|C@4h({o zT#<_VT*Gple9py&aRlL=St~{oK&VC2=S>~e=N{Fy2R2S^oZ6&^rp6)Z+W4hVgeLt2 z?SSDP&e_&BzmTvT2uCrUHaunwjlj{-Oc@iN!%$}+m$#Ua%$hkHlpuUY!cQ|dcY_7m zTl2+)neX2_VI{r3q7SDt!_5{Q4^_r+M7Dd*fSJoPIE`Ao$r9b~INMP*YuYK^D%3F& zri+agQ&w`)3#x7@`U&tOU$iq3{=kzU44`eLBH$bPPp%oBnPEm6yta!$3j_J08R#C& z8et6$8R@*4aZ6sH%t-nUIFk1Z&~1o`^eH7AF^c&VMhtqzWG*{AYPzmynb$0s&Ta@W zP63+*fCh5-jsf#+>X2~Bu`GxhkG5ewOeJt^kCXE(K3e4&&1|z^F&AbU zEM{mL;~be$ll#ht*SC`%ejH#YU31bBV-WBY$InWYLOHUV8Tn!oo;+wPnNfh@!tND) zk8MgoQv(h*AIlaCRxD*s=2EdO#iU<=N$18!FCV)qHtH0ww|0B1?{Y9?Y=K$k6!)>M z+r}b&J!>NCqP@}XNLRu0ZR?VZ1zpG`0h&%SdkJhsU8{Q|U71K%+I08X$*fbfi@w|C z+k0|$s>?HBnz$fzJu|txYr-jdFg1%#7d8QNM+%a8)6GgTbRPuCbO6Js6ij!wvBz|I zRA{o$=#On1+A(fy-!by;O*ZDjF93)HL>E_A#w>8VV)4yjmJCgGQbxA%b z43JFCpz9E`SI?+C;!wq#E#zf1XVwbw=+ETvNDr^h5-E?z?;u`c9y8#&iC;xEB)^e( zk9ZyfDu?)J69{A>JY-ZzA?4gBRYI&*7H8xkF`_d#1R?RQRe|T9yA^o(5i(O0g73IW zDI~tKXNa}}YG$vU!8wgd=HpPV#P24aU!g!*<~KsQ1;!-~IVL_QA^#x!DtUS2EIf`w zCH*f0kM>iLW0E@G43xQm9*>=cKY14ZDd5q5J54S55&7G*=>O>~Jl?HH-=J7Z^TBQ< ze&&T@`Sl>)$9yvvMcUA2zNbqY>f29$g87dxtMW~WgX1pEoKnVv-eux*Zr@o^2M8O?eY`c74-fU&ytc9CCoYu>?q=Go> z^(e2}4=)~8M-jwRIef0M({Le+N$$JIV_EWxp^OQ6yz-DdUIAjNh9B-BZwfPKb|MK0 zdHj}>{Kt`mgm&;V9_5%mBeD{I4q>@}Nd2Y6Kd9(S{#yz!*U=9YUd|c3V#Orw4-3eC zMLGJ1zDWO{3-G~yy-K`l=N|$6pq&t{2ecoITT6gH7i6;CrNpCs-2EhfVL%_pNb;)` zeR&anG4Z&cM*{kzioT5JRRR4a0sR#5=>K^EUhd>LzvMdsicGeTJl;v(jU9m`cT~y$ zoL*V{S`Flq&yqgI91}KA6vr3xr_e9m@cCZBX!$U$`(*G$29Ma<=EAi9BKddLG`M*KoHxiC3{6ERg zi@_&&pwQ1~^}Zbsn?WZzZzPm%t9h0hcJ5ruChEaNTXvq-qZ?p5^PB3{lr zsgKvnn2sy@8C~!{Q}~|}{*A(KCqG|M_&bFe_BVxJNLZsqDE(PLxKZI}lRq5_e}w$+ zRQL~(KdThJm;BkR@XrxHqVR)+uT%Jb@;|5W%ZQ&;_;K=cO5xu_?H*Ei>EEXn{tB{x zzrx=`cD|+X8z^ok75-e}pHz4`Z=P28ljQ%O6@HZPX@x&U`m<;pRCv5o#&k;I`v||F z@b47r?C&a1;}s&mWIXE#H!FNQ;l&D1=2@4*f0OVAh5r)aA%)k-pQ{x9eCn^I@HbK1 zT!r6B`nM{4n)Ht<{2J2#io%bR{v!&Xr4Ij4;Rne7UnsnM&po5?_miEM6~2@38wxMq z>owGl94~opm`gmmjpt{Xct+vnykb#z zUjZ&dA@>}SXJyH;@@CYt_IfPJFHoZi_-jGbDGI=)DJ$V;;L9~#1RY*B6A8zf1U0No zlw;Z%xEKv`cxf!FKzl5jEEe$EokeZ92am#4BHV++Z6{&)Q(hEq$R{iZzN>{DD+~WK zgjb#amlOdjIEM1OM;eV&LH%1L4ZBn;eFIBk5h-WRGqq3m@cS1Ey2b=QF| zF3mXnf@v>(D4wRpi19;HvV9r9%YajDqMa3_c$XqnAj5kOmBacc>58%&K_IERSA(pQ z{}W3^C0QT+N0X}m?*&e^i8cR5?U(=TitO8U^T1VV{}{C|J%UF{&Q{ zSun}|OYRXUpiQ;@ajJh>DpIc2{|4}t;{Pzk|BF-)fo$ySgndg0pe%xzAOissKp+(q3?XDwNHCdUQCT!ljL{Zc zsV@q(+EN9zt+iB8f>nvuw%FR1_SH68w85a#N|jge^>@y_=R9-gkU`tu@Be>3Fwb+p z_j}Jh_uO;WXUV2u!E~?3 zs$IfJE7>|mDN#OT^@10`e9rLIUs$RJK-E^Dw&phk&*s-}IO~M^wxwZO?cf~G22b1`JO`(9lT+7R^-AzuYTIlK)wg;O ze<64d3(;8A3fled1CU(blF|@7U%%me;->UQxUe;8OV!Buh;ExVoO3ok)n4}b4dIpp zV2#bF=F#98v`pJHU6ujRdZB6uQJ@6_$%jV+LHlD{*GMh5B^_SGc>Wu!&ejLdc9_G&k>|2cQqqF^R^&Iv4H^mwFw@aZpQNM)_hH1L@|2I8Qbq+2t?3u3a*RC$KOKSZ zq+ER@Ld*^xx~Z2=0$1U*{JSnkidODqeVhYbC!|b)xSONnDmc!Sy6{L!w$k$NZ>m4- z+0q0}*OqoEq&OOELdMZxGoJE~23zQ?GXzma0BE1`O>Do6puTUm^@Ly{7DKZ>Nm*>l zQNOA=sga=JXb4@(Pg1Tsf@WCzno0MjO!p?F^8g5W4Q&Qtg>OcLq>MVU_B9;`5kW`_ zc0Ji0T7*l16qs_~Sknr#%j7jj|vu zcs!y8YWgeE6e4s!Z8t`erv=}l*pW>QL9ov7LNpO-x5Q}GHmtFzso@y34bL%;;iMK~ zBGyjR-a>1cY$pbrZh4(#EJpEQ911Q1*(00kn>-CK9{Hf3=hz!(8-g!224AXg@qpt8 zAot))kTH6cmVQ%5x(LVBuX@ST7;N$YUq?+0zI01Ra|trA`1Ko_olU(A^xPLP5Da^< z;n>7r^DPOD!RF77w`c=ok zYRB?-raU`MwM06r`VGgNO~=q;DO(N!`EZ$=00=qb88r*<0xdlo?{DjV(Nes-9Xrnz`D0CY7gD<5Q8OJgscQ(I*4-=(>4z`lG68y; z2Rj?pes*C*^Z;XI8`m;}p&oQM;`Gbv-Xe1C4eQ{r08yq%x{Fpw}F`5K-5xh?xs>zL2EX z#b_{5azfps8IjqJZ5y78W3^d^#Hp4O>K~aeMb)W0lWR+kN)#>Nv=k7j{ulzH6~p-x z%zDD78;VXvWutW)649*@;&Bq`&ch;6U!~v$Qci!hlo(p(Hx$7dp|C|;YEtlYI00uP zPFt0>Wq1VO5P!6FFm#$x#c2$-ApSPs2lRArJft}7L{gkN-+qcG+!RV@71bJZ*m|s2 zK|>JchsLkL)srLFp|lq;U!m0L{IQ_$0B{@dwp!5sIBHpWfi6YV-d*cQ%K@Y4iFPEK z%KIToGED_@zd(g(Gha}gX$`@*B1QP>;+)NgItk%YQd@h^xoDd<7J)R|hwM_ANXs>V zs_Sytzg31@y_AG$Y6E1}PD5?hf-d%?VC%*-og@yblt~=5VXltyLR65_w@rq=79F}Zf8vX4+Dq!j z)|psL&4OV{598j?bjgCv=sY7nmqy1GOG~85xf(?EE3V2HqBx<6LhCoY<$yC-JyBzk zUKT|%fh>=qHY-t^ukC=#pz@#);iiV7Lr{57L*?y-$~({)JOrND7(AfYF)c@fC;qLv ztlx0R3Fm@Jdr_sN|A{sb;7=od1o4Zg3cP0U2v~L(!cInhW8u?KaeMO{!%aE{B+LST z$7OkEjK7Ga`VB4qlr4Lp4Ek!@PtBDl)B(cY(9DyM0)Rqc=LUC9@*BW8V8$2;p4PTl z1{IT@=RiIOvuqA7&Xp0~v=SGTfk)0g1H?ID-t_tZ7@SOV;SH0{Qy# zG(`I`dJ0AZw3FlMIwHB_0T|Z5%+Cb6R|&J|=IB!<8p;&4 zCdY8_Jmhfxrm_0cjd#ni7FWT*85KNblm~4S%;;^#;;8A~Jk$xg{0-3Wgqs_nLux2& zf)3;WbRf?_C*1&5p*tm*A!ADh2SV|BQHK^bS1`%>nxl99h7+b!Ie<>}(=*XN2U%!m zTluexy9s7|k@`*9+60YRlXSgcC#LfY#>nqH;umpCZGuVAvuwE@1VbkVomUa~f4Eu4 zKuNZKik(=f_r;{JPnoKX=x=Ji_2gM_7La!u6!*h_ZBgFDI7NwL`30oIib=K7qlFd) zPqiM0nE*DL1|wb@V)7@^hKHIS5j+vIv7^*Rr#z*)Nw2N!F$^=dqo@WS#|$oF(fSR~ zc)|*{a!<$Mer_DJb=|yApr)VwFEsDC?NKcpw&r1b0NM}y6hcwciq7zyPa4I$eD<8X0t68NMVIwR&)%sJI!~h4UhtNo1eu2}&2Tgm?6SCyf z(tNFM&Fd^M&*-@wYkMJj!OXBR2+f<@7OiHgFvqWL^wnteeb6BGfWdb*6zvtezxj8W z{<#6>m+s~9$Yo39vK8h7Fms2Vz8MyKus?J!%%GrG4#IqL?;EW+8-Pyw>-YD26H>M% zK(AT9VQ+j&{ma_CdsWJ|Ps~+ZN;kuH_fuI05a3l*o~Pml;S-7 zbpEgx@ovsUxb=Fsv9q=i-d@xT`PNtjxW`HoU@7>O;^2<%Ma4zRlCq@{D~cLq;we!j zIPev{8EXOzHVN7j;HcR#M%q(n8h65&#n*20%b+&&vJYzG0L<2K*;mj|xTi7rj9&Jo z{-?{nXUq&uJ55I01*O)jh1U?jh^kP)CUEHkDO=Y2^o$9Xd_{X;#)PYeCUnOI;NmdY zZ^^~@i%8Ooy)D0kn$TC<(sWXwSD zfJj4ZzObdD%t%uf1Z=5B0=3kOio=$AF>!WFeV>i_f4dgeUf-wn0j8PRI^hJ9RR>E(MA^^`$mkf>M(BMo7HFB^T1xgl-+#@>rxEp;MDh%#CVJm_=SkQ{JnXna^UXEH32F}K4MVHqHTcH(2_|%FhjoXUg zu^ioLpAE%mLAWr~b{+G#FTVs!d)9Qbt&2qf`yn9-0e4iMZmfa+} zZK7ruP{?h*g&JO@sJJWS(NFn-^XOfnQ@AUnU{Ab$L#h+@Ypa5Tz}TvzTQT~-FK{qe ztl)!RXW$vHGxcZvutk2>zi9@nE<*|RXT6~=ZIjT1w;Q)I%dxhJ2$h@r@3cf~GY@A) zWBRGXC@8Y6ifeJ)*VTJfw)6?FK z8T4_{H}k1MaRs{V>*6=?FRbUufl$)n0OU#i1@vAl^CGouJ;<600|}%FLyP~9P0{Hu z?U*7Ih?wF3t%i|0xbN-%C}ZpSi>RC90k#D`TA;gKZ4&H|cjlABk(Ivc5f8h~qqSkg z?ci3?m#`5O*)O1I^XQD`*!z@NJ2)np?Cs}8qGPC0gC}rT_W%6S$~6~^0GihZCOdEtTqs;EUAv-Q2ffWy1J;yn%Y3w zjp34&7;lMlh+kb3ijEHiSC*|Rs}6x0Q`d*e+%$p0vQ;&;>jQ;Vb*oB3rIq;jnSBJl zQL-{zRu`B90l>~?sSX>hh0CL61 zz}1yirIotu^J=Q9Ls$|klZbs*V=S6L8${a>@(ARWhOn3%yB2Jy<4_@ppIKdARb3TY zPwF^x$|_1iRcp!uZp56DIS@Im3}mmWss<}FRi9^8uPIqswIVQmWlc#au&}nIDijr8 zgu(+0Dr;)7YE}dmgjcVI>%g?Cx{~E9%T`2@Az=7g8k9buiyV{e@~72=L0Dj3ZCPnm zT~!U(n8h1;<1WcsUKMID^Q`s{C$O-rE(Gotm|jw~GF%HaXfzGXtf;Q3MRzpE^l)`) z2y>)xAg{I}Y#b%WsV=E@s;bMKnRBMkh4{_)?{spfrZ@@2rPF3R2qXQb=TgPRtP>!<0RvceNWi;VU!jYm(}-=aP7MTe*O;sbw-Y(JX(AbLdvUUs5o=- z!~+JP)?3R^J9}W^%=LGA;dKXpvVRm9NEvpLzK+v|OPYkZUtjA@_9W#?cJ+yWqZ^i) z%%V~?O-oMrRv*+RDGbRC@a;ahqi?Ra_xT(n?{*`1^uf1tOyu2tu(HhcJ$*2*q=PQ- zYydMfkv|K#1xYyA^L5}P;qIM@Jk;|z0{?P>fA++pB*jB?ClKKz^zn4VKvFmO(e^v; zAMJk{b{n#LyWG835I`8N=#G=Y4r^=cECsRJPsnAIT# zim=WE3e&MNHk-hl6g2*ACNS6kdyrOd0#~KH2Z7s7U~$J@K-+Et*LFJ%F*{9QNsn_7 z*kb}qwK{uE;JU;ikmhL za-G~$`?_x_(C5SdbSG(sPB{)#NV*y>b&}*>Ju%j})svpon>FWF_|52?5Qnaw@T|x4 zPYCNrbUW+cH2s@yA>H-$K>eGkfBRd=P<@@Jf2Zo-Y5F%`|L)Mgcasipczm}(Zb_IW zYw)JWGYxtH%`?9qeeKo1KK&b~f0h0v4oQ65_h@4^uM0&7#eCqUz$*k2{~RJH^GEFCX{PJUK7eUA-}id zFF}=gj_yGdlD+-j2ep0ZM0-JD@T!O4WFr6N%|OfqKD7g%*@3fm;Bz~0&JLWn17Dax z4>XdeTlYk0ALh`SjEAPETZz|68Uoin_9LxdPeHqmX>m@{9Hc#mw17qHaTJkE3(@i) z;Dqr`(l$)^Cer#_w4SJqXJ95~5y{n{gECRS2&zSXz#@~Jq(8&8p$^VOTu{3}53ft7 zoFoO;hB_n@aY4;xYG)@Y$E6OCv?EsoCEWFFvO??-_9t#`)c@*U+F0v z2H?QgnDFrI>Zecp{9r_LY@oAe*9=%91Tf^;=kJ39h<8V&WBA{X@U;byv}>))|Gs|! z^E0)8?GgU{2*Balb=2i=_m8YL@&h_*yMKyFzl_84Ux5hkjwOzfw>cv3dQ1U_XIBCY z6#ZA#RXCo_{(h8yKu2x%Uv}Dq>6bYJG_X37{t*P=fbzQOSNr=$rC;rz7@dB0Bz*@E zY|?LY)6e$zj!Hkz!KG&xqW!DGs~pelgq*2b=an!!I|A?^ zlXP@+QeKC9cE!V-%OoA0FvbIuL#VER&TVwU%v-gn6=c5S@osgO08x{6{Tb2+^yTsR z9Mr?RBj1Go#Nk{M{&RfJ!ywPMo`2mgp1?HVkx{k3QQrEaeS_cFNq&#%3xG3WhGZq_TwVi_j9wq$IX76 zsa)?4%6>eD=b7v#aG2a@qN#f@G8$--%EoFyUP){c}*yyJMaSKg8jMLr`lx2GX3;5S~>Tdi~A*`!fzNa}$g)>8L^Uitl9- zR05odQJ&I>rM~6X%jM~8sZy1LmU5f@3N^}f1Iq$Bc^QWnnR+T$Ba9o7+f*1!yUo5* zO)@r_M)_YJ=hjrY+qh1+`ClHFlMb+N$1XDal(^x>>}=&L;w~|Dc{`asH*Ugy-FS9x zGG>|@mxcntS4{ZIxD>Pkwk`uqV_+`lY94#yZkEMQ!O-R>lde;$u(0Tjs_P}xqqDAzw++j=9Cc0A0N%q znd~~@=ARHZ*5to3pria8rrtY|!z)bwNpV@G+DN|+aWuHhqiQroelBq7VL|PxQf$`=}3ol$>IpkDBX3<2CzzBTb$(x;)8Y z8eN|9rQ!Y;l+o~?<}i*fsQpj}4$nhozYnkRz(p$_o?VZ)rG3aZ+(;sCddPPlZj5bQIU^vS+4ruSoOb!32t+D^VPruW-N%`nBM+qrMY z9x`yMkGfRu4%2+PrAJ2Rbl=#h(YZ6*le)hyzUc0+D~BW9-&rz_G3Y2?boZCT;aJ^Y zx$lDR?=7$E*U!6_FN7TrW0|+SlTCL=?c!|?Q}^~4Z_u=38WsQQonYEgu1VkGofi>W0?QaY~`913$ zX~vIyXP6ea-K)3!@EVVu<^*}}aP!>m9cw03RK^_~rabTV>Zt~l(UkcfFHK$MIm1z$ zr^X9oxjDX1XV0#8T=_NLD~ygLe>I0m{*B)0W~#G<5RZ=PiCY}w!3^&v>p*rSGZBTTvd8_FQ?&}vi`{9 znqrB|f6L{6pCL8s zJY8^U8X4k43>+dx*Z??zTporM?;1}REEY7Bkvbpv;kr5p%Tbfpk=$NUbLrDP;KJ5ySJnOwX>LxP~9@8Eh(QQ2-@- zhI^>uY3?}EldA94?5M=~ah69f^SwKGv6dQAIzrS%qVhjzUd5CP|o+ciQhMAA#qnIqG8_` zFl}WK1t*zaV&SOOrIn870a}GslB`XxtXx;t0$0{1+Wc5#65r}3&Ox%L&~3F(xQR#W zYzl``g9TQaXHch%4!%ykI;DBi6H;N2@OE{4oi6Jzsl&t$Ghs65^LS=vc;F%~)0vqu z3ifc+K&L~8DUil-;xjxQIv6feV5cLJbOKQQ86ICJn~_LqVM8=&Fvx>DJt-g!?)2aZ z!yPX%G8ATiMUTnQ&vYV3}(a zwjc+!?J^XS_J+K>#(|bHwwqR6Md;nBa9Rs2T#rkf87K~N^uoZ<(^de1UfqmwD7)T} z-fzTVIs4euJ+K%7Wf=?wWwu8K zF-YzYWLF6!4~Qmj^Yn1DMgG9(XjY1{9yAyXJQxZRC2~jy@T&9#n4D&VT}_E2<)Ng* z+KVG4hud*c>WqlCksIeYBTc5LbC#GLKH{IHSpO zE>U;i(38Uf-fSKA0}B@Hd>?iyd=74&c|7Mjb%b9Jb}tyNt1TU+AMh9jSI($#UG1o< z>e7|r6=kE=O&C`UPkpScst&Kqs;CZ+g6BW#z6NDfX#MK4Xrf8AvTFILiqg^x1yAHW z9Vd(ryJVN5Zgpj$>sPJLuEZO^#l>}16#x{6APkEDHx33?ot>f8g;uO6D~D?s?X{$0 z{XkE3$;vtaQD&$%TpB8#KC>Wb1Vygk*`rFpKp;q|s-esEb;V`1wJWRYFk`g2@;Hgc z_7L#>%JHbAGs+)Qy&P|xXO`-Qr;ti4P##|we?WEeRcEV?2sk>Ds30xJV^F3Bg+-*vWV6rbS?k=S+ov;h-6|ZCbQutxEPK{!{hz_g5LO zshOBpwpxNG|02}~&fqHJ@bs|Cz|(UTOuCjxxxXLlor{L*?nn&q-V!~NQqjJ<} zK&$GsU1iNu9VV;P7gTb&BFb=NF46{vQzw5WR$WRZGE%NlU3RFe=cr4OQ?3T#>4dr( zPQFE|3{G(&9f~Vg=@5#aj6atvcy1~#zA8s`@xQ84W+-i)a;3fBJ3L*bUZqmPYGjTY zilJ^`>g}pmwo0k+zpQ#dQphQ#0lg;;e0+~e@!bS1H`$j|j-k{&Dy>rWgod(2b^fl( z2&?fqY9tEkwMb=dSN*b8&kFF?mth*BMP=Mz+_zSFR{C#H%GcLF`QYw@yWdluM{N1n6+@$IhzE~_;1Jnlp%0M^G!lbiQmxHka$p;Mw zx;1QYl@8^t*rC)K%$iMTY;%M1dvm+0#Q%o6fEwT8e@6B74(g(M zhg9Es{Owh*I+v?J0R*owq3RyS=;Q&a z`*D?8t}Zdf0?L4T)wf)AeNOeRuU8$n98_ZuswvPKChz8|OZGpdx>u^MlT~_wN}UYd z>`yk$(!D3tgzluat3=dQ1FWazjqeyshjFaX9c#sM+iJ2XR$tf*IM^)Qy~fjDVeG_2qM z+%}c?6k559YvlrfpH}I6R0n^d%DhJPyGSn zQJsBNi&O_JZNiIOxqWz7Op~uo87UGOUAma5MUs zEh`yW>EM#jDgR`pTgfbLCA#aMrP9L}jnxfEclEPOujN0X)?*g4lz$DmdQ9hza{EM5 z@=8!T?L9TtJ2FG1Ojem;m2#UJ3%`q$!g}Y*K-If@ujs0>&<(&Fup9UN0e+xo?+T~* zco;eHT%o#O8_hyLxR5n^3_5DZu<9{JWgDT}f#^e5xsVN{-r&;vm45)1Q$b7Z2qiw` z&p7m=>5xA1Ko1EZ=hRacDebcXFwQ)a2jv(!QupB`4j?p3+75HZ1y_o@E6ml<}= z#b}+@=^p)V?h3g#1poQ>dWYWLL0z#$_b*U^km_F#zt9A3QCSNyoE3&&Xyj{DZy3D3 z25YJ59kAa38N;=V+3-7C%eaJPfTRi)D6ddi_rghKnLzh7*qwA9fW2aBfy&yWrq5E- zW~uAS)v$+=Y6sKqQ^RMe)LAO)nkZb*(%0d5*ZuB`_fH4G^V}Zly@T&z`;`4teXRaz zn=cUHLO6Tf&2K@2h2<;hbL}&rrNA< zdgGg=XUV>11(VohU&n0i+8}Gt8rA7(8qBRx@=yPM-cvD2j+q|M(j%VlHiaW0WI72> zakJDIJhi8S-*;m(Oj0uftO?FY%vg-xhoeHhQd=+wYj}bVQw&eoaXzIwRjMxAV742; zp?6HBO2?~pY`xB~VA0ka(5yN)tE>XmWj~k%tcRm0lz?WZ*ydqIi=9%$ddc}J6|Dzt zF8ygU@xd8MS|zmFC((Wiy5U6MY{=2$8yCQFAlutNqh6(h{#8PMn0jdap&XUb0{|?m z{6DIIm4NC4)eWm881Xv8Xb(4b531?qstc^X_NdVZ)x>g@HW}7sphD;qIsw)Hhl^dfG$p{ z=b>(Y6jR0;Shm5GktjxR0)xA!!os3L4cMK;;RKdgJMfsq?Vvc+IWJS%lA z%nS3-W}f}Ic+kVw&KhI|U*T8hOe)mB&1hR#$Y6#S!dpf8(!O99} zx_?&cudIM=+}l2=z(RvVgO z-dCDiTL7=~=(k;*E5o(5@PZM(cQU7BRheO9h+i==2*}qj5Rvd1^MiQ{gY%0Q=I70E zitF$_8{AYco;kO8WliY~#UZC`-RhcZ5bRXd6^HcuIn`Cm;cXe*DS+JpBUP)gux4I} z!aA1_y!tXm>w@AyY;jrj3MX$lR z9cehdU~b;R;+YGI=YWRVM8*U<%Q~=?c`eE=KfPn)z_v+sMae2%nzgl6p)##NxEgVI z1qa_CVVln{s|&9T)#funRn;r9Lil=89YofJN=k3YT3uTcg7?sB zYO`P$rUu?j;)v3fC3Te?jV}Uam6w)VVW+sfwyX?ZAS%Xv7_!L)CWFTVEz?ZJy{c6u zbvHm_V@cdtnpX=2o)ccRysWl}OyCxOM##aU8^f{Xi=ZxC#@t%+NfZUuJFld!&M5|4 z+)!2v3ET_{F#{~&Fi32%g7` zSi_h*zigeOn-1*At$^zoDJPhOR&v%puX=@10}KzZwME+xo5tLQ#dCr)pz%y6;aGR9 ziB)Q&4{;(b3zA2Y=FOiEt#RSpVtrxlK4Ocn34@(boD;;P953Sk> zXU_RXUct<1#k%&P!Nco+T1;upin7u*AqO6agD$Wb-VVeb2%3(*B-wL|rWOPp*qkln z0-^s+Evu-ic589L>XOnj>W(bep9;>q9(pe$$@OroSLy@MTaBo4sAnRgJtu%IU{e-* zGN&%GH>%ZM4vjnvQ6+WM^IArqSslu&tu0ya6xWoO!{#mflJV)$&WfrvRdqGBS|;={ zwN7<-Rk7PticyQ|8q#CI!nyPFW(2XhV3AEHNIjrNOcOS-SB0xeZ=e@Kozc*T43iApIcr@V#X}2_E6|MCGsMIQ` zUD$E2)vw0tt>;4)2chDayMD9wic9IRkE(QuCzpV zU(}I9g!_7}%Z6dqTw5(iD`SRH?dGOOs|K~9h$w7k-Q4Oj?de*_l{n1lA2cGlpMDox zOVa&Cq`g=T&@?{N>Y<;-l%_YJVuGFB&O|rM6;%~D;<3X)iH!9$aAl3TrGpu`6nrUJ z$6{mGO(HVRqLXlbSS;gV#+&NwrUsocWM$qRcFOHRfoD~2T^ARxE?IG@gHy2r(`)JR z)*Tp&*Xa2IcMzrKC2m*Uxsf3i-yS!()s|efv{$+vIP|cNt^nw^amHr3zMfEl`-pZ# zrPP&Z7uDpY2Tn5tnGVgGb5gNja&bX6G%&ec3eE!cOjFOm&?crp+SdxopbNK(Q8Z`v zoVi!eG37uPG2F0&p0%7CJj;Q;6?7~P)fBJB z`H*X3cwgO#x*s?yjPl`b9O}KcYDHP`iW2CDMpf3VDjT(;WKGqIQPXNl^}E`2qvjPB zT|H`EZO!#%H-Jd)L7>6GRI`}fQ^V5>@@6c6?%U`=-01lnjormCyQ;gP7~Z%q#1InwoY~WgY=7!%WuuE$^QMYO1ciIxb zhOZ4^z3HI#o>&tm?N#lXFXC^}g#c?9xzHqNVbe}gVZH}8b1kBW2Aq~SrXkHOM{k9B zGP;mnfVf?9A(XMCg4-k+pUb6tB^{VnR$c-N6Wu$8t6_-La~JY_E-lWGRyf5xbuzVk z<=nz~dGlv3m^%l&EmR3Bh)SprQzq=W%v7AhWjY7ltctP9V1f|KN1*Ga^^-0wH#eHE z&}ePOY;4+kOf{|DH50bGs_NC@P;pc%a0hpsix%to9?ep$=Gsmrpz$U+)W;QrRyYf6 zhX<8~;|3Z}JIj?gke5SO4|6Z=n=tdNS_QYuY1uT!;n`j!4Olr`3zl9PUd5SU_8?c= zZQLa>EO%vo-h8JxTpg|}TLE0~2V4*9;m@5^7KchI9B0OrS6&tvTC_Y|9SWNjXx8Yk z4vpS8CMP@RlI$_V3=a3;^*0>g0SCP2kIPoPOW%ag+tIVa4m{_r56?~W9nZQ{Pp{+z z|8{s50G_MT|1t6j{0VkS{igTIj`7|{fMMeJ8LnJAeyxtyX_p`lhkoM9P5-u={uUGM z=*PJ@-q*o{1k8UI#ZSgF$Ja&VAEJ2uAR5PezwgR_i{kZjaBln>H~u`u>! zehJ0v$FDiP?-{p#Z=rbo;JO?Cg%<^&eRom3esJE6&vMfrqImrpfgArlH~m`_|GOyt zUUT(3{}u7QsgdZ{KwSAN-TWt0d^yT-l?m8~+x?=SAr^!PW0P#g|0IFLL91V@CnUdi-Je-qo)CCR6+X zJN_CS?Z6{j&Jv2(?>usPz%gze#XVxDg=?($dnr!8tI6rSC2qdYP`rLO)Q!K(jenEk z^<$(Qf0fY-<)5MW4R+q%kej|UJq~>+D*h)%0AlSNSOsy;KfY`y3i?`VXd=?*_QKH- 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 literal 0 HcmV?d00001 diff --git a/build/test/preprocess/files/test_template.c b/build/test/preprocess/files/test_template.c new file mode 100644 index 0000000..ae399bd --- /dev/null +++ b/build/test/preprocess/files/test_template.c @@ -0,0 +1,66 @@ +#include "test/../src/main/c/Template/game100.h" + + + + + + + + +void setUp(void){ + + + +} + +void tearDown(void){ + +} + + + + + +void test_input_all_5(void){ + + + + int result; + + + + + + result = some_function(5, 5); + + + + + + TEST_ASSERT_EQUAL_INT(6, result); + +} + + + + + +void test_ignore_rest_from_division(void){ + + + + int result; + + + + + + result = some_function(5, 6); + + + + + + TEST_ASSERT_EQUAL_INT(5, result); + +} diff --git a/build/test/preprocess/includes/test_template.c b/build/test/preprocess/includes/test_template.c new file mode 100644 index 0000000..38f53f5 --- /dev/null +++ b/build/test/preprocess/includes/test_template.c @@ -0,0 +1,2 @@ +--- +- test/../src/main/c/Template/game100.h diff --git a/build/test/runners/test_template_runner.c b/build/test/runners/test_template_runner.c new file mode 100644 index 0000000..c43b631 --- /dev/null +++ b/build/test/runners/test_template_runner.c @@ -0,0 +1,83 @@ +/* AUTOGENERATED FILE. DO NOT EDIT. */ + +/*=======Automagically Detected Files To Include=====*/ +#include "unity.h" + +int GlobalExpectCount; +int GlobalVerifyOrder; +char* GlobalOrderError; + +/*=======External Functions This Runner Calls=====*/ +extern void setUp(void); +extern void tearDown(void); +extern void test_input_all_5(void); +extern void test_ignore_rest_from_division(void); + + +/*=======Mock Management=====*/ +static void CMock_Init(void) +{ + GlobalExpectCount = 0; + GlobalVerifyOrder = 0; + GlobalOrderError = NULL; +} +static void CMock_Verify(void) +{ +} +static void CMock_Destroy(void) +{ +} + +/*=======Test Reset Options=====*/ +void resetTest(void); +void resetTest(void) +{ + tearDown(); + CMock_Verify(); + CMock_Destroy(); + CMock_Init(); + setUp(); +} +void verifyTest(void); +void verifyTest(void) +{ + CMock_Verify(); +} + +/*=======Test Runner Used To Run Each Test=====*/ +static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) +{ + Unity.CurrentTestName = name; + Unity.CurrentTestLineNumber = line_num; +#ifdef UNITY_USE_COMMAND_LINE_ARGS + if (!UnityTestMatches()) + return; +#endif + Unity.NumberOfTests++; + UNITY_CLR_DETAILS(); + UNITY_EXEC_TIME_START(); + CMock_Init(); + if (TEST_PROTECT()) + { + setUp(); + func(); + } + if (TEST_PROTECT()) + { + tearDown(); + CMock_Verify(); + } + CMock_Destroy(); + UNITY_EXEC_TIME_STOP(); + UnityConcludeTest(); +} + +/*=======MAIN=====*/ +int main(void) +{ + UnityBegin("test_template.c"); + run_test(test_input_all_5, "test_input_all_5", 13); + run_test(test_ignore_rest_from_division, "test_ignore_rest_from_division", 25); + + return UnityEnd(); +} diff --git a/src/main/c/Template/game100.c b/src/main/c/Template/game100.c new file mode 100644 index 0000000..c581f06 --- /dev/null +++ b/src/main/c/Template/game100.c @@ -0,0 +1,11 @@ +#include + +void start_game100(){ + printf("Playing...\nStop?\n"); + getchar(); + return; +} + +int some_function(int a, int b){ + return a / b + a; +} \ No newline at end of file diff --git a/src/main/c/Template/game100.h b/src/main/c/Template/game100.h new file mode 100644 index 0000000..6dd78c9 --- /dev/null +++ b/src/main/c/Template/game100.h @@ -0,0 +1,7 @@ +#ifndef GAME100_H +#define GAME100_H + +void start_game100(); +int some_function(int a, int b); + +#endif // GAME100_H \ No newline at end of file diff --git a/src/main/c/add_student.c b/src/main/c/add_student.c deleted file mode 100644 index 27fd329..0000000 --- a/src/main/c/add_student.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void add_student(){ - printf("Füge Student hinzu...\n"); - getchar(); - return; -} \ No newline at end of file diff --git a/src/main/c/add_student.h b/src/main/c/add_student.h deleted file mode 100644 index 4424fc9..0000000 --- a/src/main/c/add_student.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ADD_STUDENT_H -#define ADD_STUDENT_H - -void add_student(); - -#endif // ADD_STUDENT_H \ No newline at end of file diff --git a/src/main/c/add_subject.c b/src/main/c/add_subject.c deleted file mode 100644 index e89971a..0000000 --- a/src/main/c/add_subject.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void add_subject(){ - printf("Füge Fach hinzu...\n"); - getchar(); - return; -} \ No newline at end of file diff --git a/src/main/c/add_subject.h b/src/main/c/add_subject.h deleted file mode 100644 index 38e3a65..0000000 --- a/src/main/c/add_subject.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ADD_SUBJECT_H -#define ADD_SUBJECT_H - -void add_subject(); - -#endif // ADD_SUBJECT_H \ No newline at end of file diff --git a/src/main/c/main.c b/src/main/c/main.c index 9c2a206..eaf0b17 100644 --- a/src/main/c/main.c +++ b/src/main/c/main.c @@ -2,11 +2,7 @@ #include #include -#include "add_subject.h" -#include "modify_subject.h" -#include "add_student.h" -#include "modify_student.h" -#include "show_statistics.h" +#include "Template/game100.h" int main(){ bool running = true; @@ -16,12 +12,12 @@ int main(){ int option = 0; system("clear"); - printf("Wählen Sie eine Option:\n"); - printf("\t1.Fach hinzufügen\n"); - printf("\t2.Fach bearbeiten\n"); - printf("\t3.Student hinzufügen\n"); - printf("\t4.Student bearbeiten\n"); - printf("\t5.Statistiken anzeigen\n"); + printf("Waehlen Sie eine Option:\n"); + printf("\t1.Spiel1 starten\n"); + printf("\t2.Spiel2 starten\n"); + printf("\t3.Spiel3 starten\n"); + printf("\t4.Spiel4 starten\n"); + printf("\t100.Template starten\n"); printf("\t6.Exit\n"); scanf("%d", &option); @@ -29,19 +25,19 @@ int main(){ switch (option){ case 1: - add_subject(); + //start_game1(); break; case 2: - modify_subject(); + //start_game2(); break; case 3: - add_student(); + //start_game3(); break; case 4: - modify_student(); + //start_game4(); break; - case 5: - show_statistics(); + case 100: + start_game100(); break; case 6: system("clear"); diff --git a/src/main/c/modify_student.c b/src/main/c/modify_student.c deleted file mode 100644 index 18a7b85..0000000 --- a/src/main/c/modify_student.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void modify_student(){ - printf("Bearbeite Student...\n"); - getchar(); - return; -} \ No newline at end of file diff --git a/src/main/c/modify_student.h b/src/main/c/modify_student.h deleted file mode 100644 index 7c930ef..0000000 --- a/src/main/c/modify_student.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef MODIFY_STUDENT_H -#define MODIFY_STUDENT_H - -void modify_student(); - -#endif // MODIFY_STUDENT_H \ No newline at end of file diff --git a/src/main/c/modify_subject.c b/src/main/c/modify_subject.c deleted file mode 100644 index 1610a5c..0000000 --- a/src/main/c/modify_subject.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void modify_subject(){ - printf("Bearbeite Fach...\n"); - getchar(); - return; -} \ No newline at end of file diff --git a/src/main/c/modify_subject.h b/src/main/c/modify_subject.h deleted file mode 100644 index 69892eb..0000000 --- a/src/main/c/modify_subject.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef MODIFY_SUBJECT_H -#define MODIFY_SUBJECT_H - -void modify_subject(); - -#endif // MODIFY_SUBJECT_H \ No newline at end of file diff --git a/src/main/c/show_statistics.c b/src/main/c/show_statistics.c deleted file mode 100644 index 1cd16b7..0000000 --- a/src/main/c/show_statistics.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void show_statistics(){ - printf("Zeige Statistiken...\n"); - getchar(); - return; -} \ No newline at end of file diff --git a/src/main/c/show_statistics.h b/src/main/c/show_statistics.h deleted file mode 100644 index b97005a..0000000 --- a/src/main/c/show_statistics.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef SHOW_STATISTICS_H -#define SHOW_STATISTICS_H - -void show_statistics(); - -#endif // SHOW_STATISTICS_H \ No newline at end of file diff --git a/test/test_template.c b/test/test_template.c new file mode 100644 index 0000000..109de45 --- /dev/null +++ b/test/test_template.c @@ -0,0 +1,36 @@ +#ifdef TEST +#include "../Unity/src/unity.h" +#include "../src/main/c/Template/game100.h" + + +void setUp(void){ + //Wenn Funktion Vorraussetzungen braucht +} +void tearDown(void){ +} + + +void test_input_all_5(void){ + /* arrange */ + int result; + + /* act */ + result = some_function(5, 5); + + /* assert */ + TEST_ASSERT_EQUAL_INT(6, result);//5 / 5 + 5 = 6 +} + + +void test_ignore_rest_from_division(void){ + /* arrange */ + int result; + + /* act */ + result = some_function(5, 6); + + /* assert */ + TEST_ASSERT_EQUAL_INT(5, result);//5 / 6 + 5 = 5 +} + +#endif // TEST \ No newline at end of file From 97f15cda3ce8f3744a3c11ea44e8824457baf922 Mon Sep 17 00:00:00 2001 From: David Moeller Date: Wed, 17 Jan 2024 19:30:41 +0100 Subject: [PATCH 2/2] removed ceedling release --- build-project.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/build-project.sh b/build-project.sh index 69d876d..12103f8 100755 --- a/build-project.sh +++ b/build-project.sh @@ -1,3 +1,2 @@ #!/bin/bash -ceedling release ceedling test:all