From d7673cd2928bc39498f030a4857a3120cc11c2fd Mon Sep 17 00:00:00 2001 From: Janosch Date: Mon, 10 Oct 2022 22:34:56 +0100 Subject: [PATCH] timer mocking --- Makefile | 3 ++- include/charger.h | 15 +++++++++++++++ include/param_prj.h | 1 + libopeninv/libopeninv.a | Bin 38400 -> 40208 bytes src/main.cpp | 15 ++++----------- test/test.c | 1 + test/test.out | Bin 50488 -> 51640 bytes test/test_common.h | 5 ++--- test/test_logic.h | 20 ++++++++++++++++++++ test/timer_mock.cpp | 5 +++++ test/timer_mock.h | 3 +++ 11 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 test/timer_mock.cpp create mode 100644 test/timer_mock.h diff --git a/Makefile b/Makefile index d3e0e74..44ce955 100644 --- a/Makefile +++ b/Makefile @@ -126,8 +126,9 @@ Test: g++ -c -Ilibopeninv/include/ -Iinclude -o errormessage.o libopeninv/src/errormessage.cpp g++ -c -Ilibopeninv/include/ -Iinclude -o printf.o libopeninv/src/printf.cpp g++ -c -Ilibopeninv/include/ -Iinclude -o digio_mock.o test/digio_mock.cpp + g++ -c -Ilibopeninv/include/ -Iinclude -o timer_mock.o test/timer_mock.cpp ar rcs libopeninv/libopeninv.a *.o - rm -f my_fp.o my_string.o params.o errormessage.o printf.o digio_mock.o chademo.o terminal.o + rm -f my_fp.o my_string.o params.o errormessage.o printf.o digio_mock.o timer_mock.o chademo.o terminal.o g++ -gdwarf-2 -g test/test.c -Llibopeninv -Iinclude -lopeninv -o test/test.out && gdb -ex='set confirm on' -ex=run -ex=quit --args ./test/test.out cleanTest: cd test && $(MAKE) clean diff --git a/include/charger.h b/include/charger.h index d08f8c1..b7e66b0 100644 --- a/include/charger.h +++ b/include/charger.h @@ -1,6 +1,10 @@ #include "../libopeninv/include/params.h" #ifdef TEST_COMMON_H #include "../test/digio_mock.h" +#include "../test/timer_mock.h" +#else +#include +#include #endif static bool IsEvseInput(); @@ -43,3 +47,14 @@ static void CalcTotals() Param::SetFixed(Param::udc, udcmax); } +static uint32_t startTime; +static bool CheckTimeout() +{ + uint32_t now = rtc_get_counter_val(); + uint32_t timeout = Param::GetInt(Param::timelim); + + timeout *= 60; + + return timeout > 0 && (now - startTime) > timeout; +} + diff --git a/include/param_prj.h b/include/param_prj.h index abd3edd..134d06e 100644 --- a/include/param_prj.h +++ b/include/param_prj.h @@ -107,6 +107,7 @@ VALUE_ENTRY(c3iac, "A", 2034 ) \ VALUE_ENTRY(c3udc, "V", 2035 ) \ VALUE_ENTRY(c3idc, "A", 2036 ) \ + VALUE_ENTRY(test_time, "s", 2037 ) \ /***** Enum String definitions *****/ diff --git a/libopeninv/libopeninv.a b/libopeninv/libopeninv.a index f081895f84acd71bf3fb36d0abbc92490ba8aa65..1f3f92c34e176603f5fa3ee71c770369c1608eee 100644 GIT binary patch delta 1045 zcmb_ZUr3Wt9KH9>)i+VMm~3Ck+-72FOBc%K_bs+r&Gt~_LohJcHpa^7bYjyaC>37{ zDF!FX7hw~NTuul%Lx}MB@1b2G5?RIQxTbS2&ui+@$=i;vWZ>l*H z{|#UMwQs8sPF>xS;C1^C?A#tV`=@>RX>Yyc`#ge(TaTCS2UJoLo=;`kRP0hJl!_0; z3S#6KI`nPI*okEU!IL%gtI~0LTE%o4yy-IR-6$R*q?PZKl$A0azOKn+nSY1wKfMilKpIw7)qzG(>j#c&twv(Q{S< zgSxu-(^c4X7%|r*qW;hlHG*R>?^NczdM=_9`7_Y}KXgQDp_PlE?xC zUuYA^(*&z}VKq9UOYfxUmz<`YPt}rkVgRKuR zFi?g)7#MO~sDU@{;C5u(e3a=L>*mcI(Z^$&E@3T9}XtBA&{v``LNDBjl)8viXGLs83SvK!* zxyZ43qi;R4;R_CkoC1(yWMGDHfaDV>%NQ)q0vEU3oETWn#<*kh&G2}}9h)s9@_8rE z(BawqB$bDm>wpwQ-43S7_vFnvpt_z+eyA-x*+4-BXf+3;C6vcA`GXF} #include +#ifdef TEST_COMMON_H +#include "../test/timer_mock.h" +#else #include #include +#endif #include #include #include @@ -42,7 +46,6 @@ static Stm32Scheduler* scheduler; static Can* can; static PiController dcCurController; -static uint32_t startTime; static void EvseRead() { @@ -189,16 +192,6 @@ static bool CheckChargerFaults() (active3 && ((Param::GetInt(Param::c3flag) & FLAG_FAULT) || timeouts[2])); } -static bool CheckTimeout() -{ - uint32_t now = rtc_get_counter_val(); - uint32_t timeout = Param::GetInt(Param::timelim); - - timeout *= 60; - - return timeout > 0 && (now - startTime) > timeout; -} - static bool CheckDelay() { uint32_t now = rtc_get_counter_val(); diff --git a/test/test.c b/test/test.c index eeaff39..38354da 100644 --- a/test/test.c +++ b/test/test.c @@ -20,6 +20,7 @@ int main() { (TestCase){"test_check_unplugged", test_check_unplugged}, (TestCase){"test_disable_all", test_disable_all}, (TestCase){"test_calc_totals", test_calc_totals}, + (TestCase){"test_check_timeout", test_check_timeout}, // Example: //(TestCase){"Your tests name", function_name_without_brackets} //... diff --git a/test/test.out b/test/test.out index d28182de77b62fef82881f9e125c99412e1e8dcd..e170f4017f89fd2d673df7945e57be6019837578 100755 GIT binary patch delta 17097 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 delta 16808 zcmZ`=3tUvy*5Bt0!^{~#W_UOPCLs6%Mewazp^0}aD<~~dOYwGjO`!`TaO+?f?3(wf5`m z^Vq`AIgcou^YELr99L6}DEiv*hqO!Sqwf?& zs~n>Xd<@^H|4%~pPb+@h+N-1e$Xh+T-Z4CF)myNeds|U zokFl$UgYp5JuR*0EY=tKaz}5i4{yNvb$$}(H12Ws)^hnUXK(IyI{9K}2Y=e~wlNRg zF3R04_%Vs+TJRGR_gQcir_h3*l>Bi5_cPTP6=<%-K?PcD!2>c-r3F`U>MXd5Q{M*n zGj>h}+SbN^UbsW_M3V(qfeu*k49P!a!LubEu;6AKR`e9$v9~ie5k|+0jK<-Ay9$xEe<23gU^DiK$9)Fic@OAN6R>K!+0mNDdVJ}Dr_+E zL%hWBj@l%xbr$RM65npYRr(zkyn#0x-lVss*D;Ir5I+y=r_vg*Sij)uE^m^G>|9}1 zFVu0zd6CQO|3doaTC875e2@hXNPL_HPa7kmPqyIQBwlI3dkEamwpk2$(qX#=R}<-w z1s@>!$1J$Iq^?--p_0!YrV2-eC(;R?7wz>INOO17+{&t!3=4jXb1%FQBJ1n>wjbj%4CCP6wajYw9 zc~X}JTh+EF8l;2Mg71)ccME<};<*+)Ao0T1_-N!hBMswP8-Oc^#TNX6(jm=)s|5KLJYMpB7F>-_ zsRd7x{JAFHYCzQht+P0!NryTMuKIh21@9*LO%`17TUz6EqsoyEf!2mr1L~}5+d~5+ z-)+IwkmXwNp^`tyf>V#0H_CAq!*J;^*@CMCl@{D5`BfHN4cRseeyikfuM+uxcTF9# zIE;}F$1J!SvMUyRg5$XdWLJQs^@o^UX z8{QD_)z6G=oRat_7jJ35?e(-wt;5#_W5LAN?_uoXI^Wvs@@6sSTWimn#fPSMGc>c* z|L0O(mOe!Pw3Kg4@2bC2+IT2^il#lp`)1szZRCqGGG?5ffz|G2ghGffNWVeoACul! z=m$yfCiGpTrwILZ(qo0bg>;+HpCtXV(~P->^zRx2VFKq(=z-Wzw%W%&KiA{fy8zlHMZpwWJ>r`ZCfF2z@^3 z?+AS+>DwK+=8$YG6&{7*;id(tzO^xfvKiYMk2?C+_8$Qql+h4@;$MP6=v|3EDNHwr zPR#~AQP8g;dX}JHnFc*KO#eI!^h7~F?MDG2?Zp4(XEXc<#Mi?7mxxdAqX_>uK|c!- z_)yU6iGDaTRQU&q?iKVZK|e%H% zNzk(d{c)n-An0zQ7li3Q^Z-3s(0_rBwk{>QThPDqPeq}9nBPSF6v6*c@TU>~tK5HXf77ql@q;>y9-aN$SXD zxp29YTpnrTl0zSY zchc7(1UMp^`87mf&}F`_N1FcyIPTIY4qcCdCn-+De~VK`ajp?@=7~6!6z9`Rs0d&g z;7$rKR|E*PVj}sNH=9BNnOMZ02!SJGrZrBw~v1lX%QB*f-yI9b#qPe@GsA#U~ z-=i3K6`90x-Ur3%f-5xzSDLTbS6s=gpjDDl;yAdV@zEl&mlCH_rDvnresKrbLZQo0 z7WV*7#W_?o?*b1~rUJ@DOJd-lPMNOO6kJ87>xgFN+CW1suk+1fsGA@HZ~oY(jn&Jp zwifT%@xxJfT;n{;xaukY34gFW{lPrXWxq;i)M&1LyKz`HWuO z^x3!b$9i>+8b#I!9rNUFKCf5D4xL5$LTpykg;;ltAM@iv>^;q|=rrxRgz#@LKcc=JY3V-hwmpfALJf4rw?R@)h#f-(inczn9>SkOh#>c)o z-`d1)0ar!4Tg`u54b=;9(Oxy}`@?RR51EeX!tvE&{!wm)r{b9t}T)4>f2Pwjq4fB6Q|HWS!8+ z`(7WZo#2NDPt%q(4jfXbX$u>xuD#u+9pztKzewB1@3`S!?LyXx+rP{;H8jM&>Sb3j3U~3(hvn%%4rz=TzSpM5rZ%1^I2*08#?!aIt!s?`W$ZqG zAr@~`jU71{3_c8f#QVYE%aCIr_d>n_SqAyc2f^TR$cztz!K;u*ARokiApRf0;M0&d zLcRmJ6Y@A@=|@-_v4XsMI2cTW?EOhFm=F08C@#ari@)LGFdT1bGT_>X-0$GWHM1Og|I@gEs>550KL!7eGD?`4`Bo zkjqaX0OV!JQ;_v72w*UF8Zr|y?Ii4w{l9`8^2x7ZcQJMqG83{sfcTIr{*CyMwf{kU z$Qj=SgSU@>!)hqgAh$t240#%ID`dhMNDzO7+zWaBdnACo`z#XR!9)822_V-)j)06f z7Ywe6;z!4IPRc(J4ANUC8{u%1$i!bi{Q0=2xLeY?{lTCKlL-gCh~dV~s(4YcS9^=k zDo)i?5AxN;o%Gv3;eUbfeZt>|xc(FVpW;qhAveaSYWMRVIQ#i1oR9KZ<1@6${FU)3 z_Ct7nSjGPV?Hsgk`S;M=n6fi?%!CwsF0>x}mI*06XzF_p1%rPBixsqUuhMUfiL||{ zMLW>RIOy4>0-Q6vc0!7OJ+z6K%+!()dxGE+^9|T1!``j6{hqM>2<$Uqr(Ov8-xs!D zgncROy;|F+h3pQNfQzB(FwYvFZ0`rPj(Z#$X z^@DvH>}9R(x*$-~#=yRv*WQ!juYgt$=IS=g<)KEbhu!sQFgUx7UG%rvNwD7q`@L=K zB_aPKuy2NaXlr|UsHTzZA_#xyd6QD?30O3~;6>2-LHjqK2WvLmqX+M_bSH?*HMr$@4Ui+K^ShPB_8m&G!ygsQRse`c!MiKr0zmK-^uJ z;;Ek!oZ!u^ywBmO-aO=&=QI>rK5YKxqh&I%&F(Ijj+9VeC2Vqy+z$bVu>}r#jqQ&zMVIMmN6~s}@Pr|NtZJ#&o z9T!F$YG3wwp0_a7Q2VgLUIx3`X)Wf>G3;s^RManeQM92p zI`NZ$MX83`#oS@~PlR3VQw9i0{9Mgt)L3munil>txN6H$aF4g*s_jP6?yKOc4aF1O zvpCgI+l9hDdU3R&_5)Aw64=#l-xp@TJPo_r&)dNpU{{-UqAq7(SKD!-F5k4OOK9KC zY~#=eq7AjPmd%SENHx^HndqZ6u&a%+Y`z(Gwe2PB$6;3+Tc{oEYS&8iVb3MehT4}B zbvfIrE@}fx)cZkj)fSWBo@>Qbn@Mu+fU99vW^Uspm>DM*q|Kc96>yBk$=@E__NH`rsNNACC|JQZ< zm+-M|hVJZcxfv~+!tc@w8+ntfl4UmZQ3s48?w&$Q3 z$?+3N&!C-0S8vZ|6r4S9azxyKb8KbgIS8W>v6*oz95mxa=(=$?0GmNC#}URrWVJKb z9^52iUrP85n5IQKpN4c$A&MSlqmrXugNPP!qf#T@gJm@k!;2F$j`|@q<7vdujY~M& zjC|k`w2m{oaT!S?jbEWVj3KCo)9^tzj9i>uh6_t=l<^JlXyY0%V~oDg+ZkQZS+PbT zs^>O7Lwt`h7kHe}8T|N|S<|MngqQ_5C&rZD@1M%r8;`=-YuI4!V9@%VWK4uxvJr&} zr5JsocQmpQ;u<3lK|2{`z*CLikS5Kr15Y>BqC%aG;&mdZ+VF#y+@h#3>jY7oi zW}JYvyKxNX9!3zHEW@Xv|Feyb2-?%w4MQ(uK9c1aT@bXlF&*bzV-wDK#)k;e$M^*2 zzD71U{frx-_c!Q!(*WZ+gd1q=1U|@!gFe`J2VO&1JMBA2hbtx%_0YD!9&0{J*(Lyv z%7{$VF#gPT8ZOZvdq+ZdzXs;9m^^0{TIU%6Lrh=COc?YG=81)j8DKnS7M&hDSqI9Z z+w(qR#tf3h4xY|vRm@;nO!G`b@|YpA*xi$b+Q(dLJVyETj9gCzg&r!+gFJ;4`Z`(6 z_q;&P`LgKq&?9clFj*}09HYd;WpSK`zF^0UXukyw&@(1`=s_=LWWqMHSnBzaiayz- zxgP&%3O!1eD?DG2^G#6;%xW$6Or(0;5;q7%TSlekX-}zcjlIPzKcso+4jOZt^Hl`5 zWvsv>3q>o6rH`Jrj4I7@g2ENYEI0YQyZA^H=u!pAAL%4h0xbqMFaxagept`%R3+JHzOPU64C3Hl)j zlYIt?$&P0(4??)B+tGFjtpPN5T=XXDUM(@#DAe0sqe?O8Mo)4y=9M1~2@y!sA5eSd zdI+i~B{>TvO>;#PuM_d8w47|I(&o+AB4T?2sUgl{YLVSZI!)C3$UV~av{@V^>iZN5 zW_|Nmhe#)tY`y6E(;T)*C?q{XN%UC9G1N5qdj!_wB3^|-(~^Hd^l)hn2;tI5O!IK5 zsSWcbxQA_}NDwa3M=6y2GR1Xm5*|hehN*+vB=oi^)rv48O3K2LGNvcGs0rwXj@lol z;~wF4J%L&grftG$GybkQK_%8nyTeb64zAJEe}4nGD{M{G)=_JcT=e-$I}|qHexiQ> zQ>2s9Iw)3}HWL+bxa~AlQRXLs@U0RM)6&sT=`TTZ#Kn+qt8H1v61LDTC@rey$kz;9#lDK-(LZ;W2u}tmn=(b2lB+cGr>7~4z$m=b5b)gkM(qp^= zK(8(BdI9x42wc+)+akYw4@l>zNMwp6m9Yf6j}gnPn3p*yQl{p>8E@hbfV`CMmpD}3 zG*m@P!plsT`P0jpy}i>Mh1&bgd_90uz6t8J!;BBqFA}6M2f1cye?$xIjz|p?;OFil zfl5?K2_6U~aJ5NLEfaKYlYmgO0ZGh3o|#%a;zu|l-$Wn0k%{=U{;EVRl;C~P+ICT) zs0QnHBU)`skBKBd9Hu{HK1M^M-*==}Ab>5yB|3U^mj!vu)>W1YyDaF#Y~5sOOqT_H znXNlY6KPDwnZ0kzlGcf=dpW9UONe!LXw>4m%mk{}j>#}r!npqCJ-XJ{>v6v2kzwt&VB~VN9n>yY ze{HmQKRB@7w@@xb~}$2 zr{zaJF+5s}$MXztUY%&`k;6czsg=baTb;zut{&-d(PUw-@oQ_+B6{cK^yatKG`BpE-SgPARkTPHTqI{ja=Y8XjhQ;cpIL0J9&MG-EDQgqT}0zhri~(7~HFeFk)N zPkF`s1yd^~jT|+)006Gaux7eUnmhkq7*HjOem_*q>+%Q6CrzI}zid`{1pp*sc7ATn zHf;{yxb_2kM1*bPLyemrEzz{;QdF}ee zjp-XU>-?3SN&L!_Qwr2V>6Qzo&K5b99v{ZsN^h3)M`sJ&O5ekutxFlH7Ck-exW3)q0kiB_;%x&2R}2n*dx|G9f({!^Q@ zk?M-R5bEefPNiQ8V{WC}<=*(IhFo?7;`KAXb4;AR{CfB#4}&_QIV8X>yfIfYQBo@Se|J)aw#?=lWgR zXnwNZtJU+L>i?`)u5R42d4LAVKi_hgS8PepF7tU?ym+O>(!!Ei+Hx@#0bF`?v{!hg zS!Ab#U_DGch1IVXz+j1A3tVSz)Q!r8DYeXDB z3&=pS_t=XvP`n&{dBw5!Wgsdw|ULq zs!_GRkUdOK5_G%^HyYYgmJy-tbK+k&Lh#CjVDv&r_^=xVa8=^8FGu)p`f7tiUEbYr zdq+3&M%_~~+|=FdAN>Vqp%CmQiBFbGfLG!(fK%NbmUUATd8x$DSn9liH^1ohF9D5e zq8{|t$!MFSfa@MMZlnaH*e|n>l^uP(#6OmJpMe69S3LV1I8E-O!vubf z{ZuUtkIFy_e?|sU4*_4xK>IP9sX~}X<{__Y)+qT^a%^RXF#3fzmNdgkODC(8bSXZPS*FNA?kaKmD(6PDb26Ip`cd-LD-3-urlTEic*Uz_(AhuG z5FK$v#!NFA*tVDWQyjr?HXSncG&cj_+x%_ih# zb0tTO?Hq}>6bSZo>GVh7GumMbxGe0{J-_|RN!=Ns7L+f zvQ|rZ`gU*sC#AJ;q=2!cn#Z4ImNk|-&`+ApN1CKBq0w5zTCYX$Jx_7*`?ZGc-iXv_ zEDuHX@j4sKPj2_l`UA>TmpD1Bg)&=-#Lo;6fUFF=7dZ9ALzY_jC4ZZoZEhK7v&3KI zB@LJP1Fvsy9MpJ^t?|`28|;mX-)XWn4s0sXb?k_5+LPl_8|QV2jfeN_)3lrT#=X5g z>giC)G5nuE>&J->&AKrJpQMyEsvw6uDY~SwBG`K`2 zn@Aau3lizWH|`&(cUi>`@4w#gR13#;Jn6tdBlS^H8q13h40Kg&kTtOLO$P=T2~UY) up&9Yafy~5Gi3B{t(gk8P?{YBPRrrcP{v6H69~|Ji{FW$IYJ7ZCr~d<+2*ld} diff --git a/test/test_common.h b/test/test_common.h index 3d388a8..41f96cf 100644 --- a/test/test_common.h +++ b/test/test_common.h @@ -1,7 +1,6 @@ - #ifndef TEST_COMMON_H #define TEST_COMMON_H -#include "charger.h" +#include "timer_mock.h" #include "digio_mock.h" - +#include "charger.h" #endif diff --git a/test/test_logic.h b/test/test_logic.h index f4e2b8e..20d2c43 100644 --- a/test/test_logic.h +++ b/test/test_logic.h @@ -27,3 +27,23 @@ void test_calc_totals() s32fp udcmax = Param::Get(Param::udc); assert(366 == FP_TOINT(udcmax)); } + +// TIMER NEEDED +void test_check_timeout() +{ + bool res; + startTime = 11; + Param::SetInt(Param::test_time, 14 * 60); + Param::SetInt(Param::timelim, 13); + + res = CheckTimeout(); + assert(res); + + Param::SetInt(Param::test_time, 12 * 60); + res = CheckTimeout(); + assert(!res); + + startTime = 1100; + res = CheckTimeout(); + assert(res); +} diff --git a/test/timer_mock.cpp b/test/timer_mock.cpp new file mode 100644 index 0000000..0656fec --- /dev/null +++ b/test/timer_mock.cpp @@ -0,0 +1,5 @@ +#include "timer_mock.h" + +uint32_t rtc_get_counter_val(){ + return Param::Get(Param::test_time) >> 5; +} diff --git a/test/timer_mock.h b/test/timer_mock.h new file mode 100644 index 0000000..34a842a --- /dev/null +++ b/test/timer_mock.h @@ -0,0 +1,3 @@ +#include +#include "../libopeninv/include/params.h" +uint32_t rtc_get_counter_val();