[Fuego] [PATCH v3] logrotate: Add test cases for command logrotate.

Tim.Bird at sony.com Tim.Bird at sony.com
Wed Nov 6 20:37:00 UTC 2019



> -----Original Message-----
> From: Wang Mingyu
> 
> Logrotate is designed to ease administration of systems that generate large
> numbers of log files.
> This test set is used to check if rotate file can be created.
> 
> Signed-off-by: Wang Mingyu <wangmy at cn.fujitsu.com>
> ---
>  tests/Functional.logrotate/data/test.conf     |   8 ++++
>  tests/Functional.logrotate/data/testlog.sh    |   5 ++
>  tests/Functional.logrotate/data/testlog100k   | Bin 0 -> 105984 bytes
>  tests/Functional.logrotate/fuego_test.sh      |  19 ++++++++
>  tests/Functional.logrotate/logrotate_test.sh  |   4 ++
>  tests/Functional.logrotate/spec.json          |   6 +++
>  tests/Functional.logrotate/test.yaml          |  23 ++++++++++
>  .../tests/logrotate_01.sh                     |  13 ++++++
>  .../tests/logrotate_02.sh                     |  23 ++++++++++
>  .../tests/logrotate_03.sh                     |  19 ++++++++
>  .../tests/logrotate_04.sh                     |  43 ++++++++++++++++++
>  .../tests/logrotate_05.sh                     |  30 ++++++++++++
>  12 files changed, 193 insertions(+)
>  create mode 100644 tests/Functional.logrotate/data/test.conf
>  create mode 100644 tests/Functional.logrotate/data/testlog.sh
>  create mode 100644 tests/Functional.logrotate/data/testlog100k
>  create mode 100644 tests/Functional.logrotate/fuego_test.sh
>  create mode 100755 tests/Functional.logrotate/logrotate_test.sh
>  create mode 100644 tests/Functional.logrotate/spec.json
>  create mode 100644 tests/Functional.logrotate/test.yaml
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_01.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_02.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_03.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_04.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_05.sh
> 
> diff --git a/tests/Functional.logrotate/data/test.conf
> b/tests/Functional.logrotate/data/test.conf
> new file mode 100644
> index 0000000..a346adf
> --- /dev/null
> +++ b/tests/Functional.logrotate/data/test.conf
> @@ -0,0 +1,8 @@
> +/var/log/testlog {
> +        create 600 root root
> +        ifempty
> +        daily
> +        nocompress
> +        missingok
> +        rotate 1
> +}
> diff --git a/tests/Functional.logrotate/data/testlog.sh
> b/tests/Functional.logrotate/data/testlog.sh
> new file mode 100644
> index 0000000..da7a877
> --- /dev/null
> +++ b/tests/Functional.logrotate/data/testlog.sh
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +
> +ddch=`date --date ' 1 days ago' '+%Y-%m-%d'`

Hmmm.  I'm not sure if we need an assert_has_program on 'date' or not.
It's not in our required programs list, but maybe it should be.
For now, I think it's OK to not add the 'assert_has_program date'.
But there's a bigger problem.

The busybox date command does not support this '1 days ago' syntax, so this
will be a problem on machines with only the busybox version of 'date'. 
I'm not sure what to do about that.  Coming up with the correct syntax
for the logrotate.status file will be quite difficult if we can't use
'date' to calculate yesterday's date string.

Let me know what you think.

> +echo "logrotate state -- version 2" >> /var/lib/logrotate.status
> +echo "\"/var/log/testlog\" $ddch" >> /var/lib/logrotate.status
> diff --git a/tests/Functional.logrotate/data/testlog100k
> b/tests/Functional.logrotate/data/testlog100k
> new file mode 100644
> index
> 0000000000000000000000000000000000000000..1dc679f54731568a9cbda775a6
> 63b7ea51595fe3
> GIT binary patch
> literal 105984
> zcmeI5d0-U9^2b*N!X;-EJdh;28zdV8yGaO9L{XdL$K@>wVs7M00!a`-
> {fUA^e4r2f
> z0X{&`=Zyl&Q#|l~hzE+OPr(y!P(TqC1(8=ZGs|u^JKbNze|~PwA7rMhr<;7HQr%
> Ns
> zU6bVTc!qWHcq*%_x`gQ5?O<8e*uv_n8n+rAPq1rNC?_k_H7l6i&ArxNU$S6W
> ifZ-y
> zk)EdQlWR at CZ4y=Z>I|EIwx%-6guez*l;{ECU-I)25dX$>-
> %vpRqnejf1A)hgf1_4M
> z7;4#K*8gz at nEk0KzI>#vQI=m>IJPjWrn;)EB&)b8tE^_!NHSSj#T8kjDs{L1rDXps
> zN>PjQT9E#?9bo#!nE#v+Hvb$=WtJ6=FRjv4 at sw9omsS?%BszZ2C1ok<`|`us{*
> >!@
> zv5fgIclhUODzi-ZYXC)wiirR24b5QwUpV}AlNOc<|0u|s(+c80cS&=Yzvpt>{^V)e
> zWSQ{S0E!Y#CjNsqCc*q~A>+>T|L#$3#GbND#@|>f at vlD~nWEmjt}*e)#^2f&
> Hvjzi
> z%~_=^6aCi!iV{6PIz_Es*c8_P7f!bM2fIc!5_8HjdH;%m;&QoeBJqE{A at hgcf0KJ
> U
> z{DUqHQgM)EM*CAVG8F2b at Y7Gvsn4gVdGmPw+4c)}qPB$Jf7=55P3?$0Lg3y
> PQdF<e
> zO(O-
> GGv>dbiLL+Hx&c_zhKTACIBHFb+WLF5x`i%R%zrgt|6OjE;y47hZc0&oKR+^#
> zq<#_ee+BS=*1uCq+z2GUpQ3v1!u)T{e>UL%aqCOU>l0YFHAQ{9v3_~H66XIo;
> D3mB
> zuaw0n at DA}m^T?$5!kAL#KOK1gin&cLH3Z%z{vJQhf0?8II{&ApI}ybY*hu_;or&
> B3
> z{SJSf|1G8qxzrHYPW<N#Yow_W5wZQLEU at SQy7l+S9dc$O(Ei&Lwdq~_{p$w
> 6|7q$|
> z<PieQzgc7K{fkG5=St1`FYzZ4zNWL`52dQ7&d2?4-
> #Gjw{=`HUlaC_)O`qoVceDSK
> z?f<iY{$o8$EhaF5_}@CE0R)5XPX<LbAn|Xq{sJNO?0+~_ZCq@{UqSH?y&e7%e
> }eHf
> z)k=CKRe3@<|00LK?)^*RPfXM!@|MK^YTN!p`oFxBZGUv}C$v1 at 4YNO?gkJy
> ~{z9sn
> z^g$CIf5$|gO8he(e-
> Zxi at 0QYd1e&c$RqMN8 at 4r0$zTe)g|NOUMT>q8$PwR0^_&8PN
> zbz=LE#h=_b-
> sZ3K|B(I3E37IkDvbBQowDk}uEB&iKE&dLZK>+ZbZh<neGM*4#P$c_
> zZ)!*65dvL^f2aG{vX~F9wNv!p4C)|iEch-}^>5#j?GL2?2>*lVKH;lAPW%Uci0l6m
> z$J+K^7k<Lwp<@3r)vDZ?s&>D}^G~z>^HVzeIGevI{!`{Z82=GJrK%0zG=S$n&p
> P~d
> z at t;*)f?ehP3*$fS=Tx=gHxKbQzkjj*mw0Xc4{8>`ScdVJ{YMY(PF1B(TK<2?|4<a
> >
> zZ-~DY{+Rx+B>v;S$M=7I9OkcCfC-
> XJ_+$K66aQn5!uKET4fEGHpo1h6{uuw4h<|ra
> zBewsL{Ym#Z_Fv<G4w6jvUts(v{gSF`npyi_YE5^r{{fl*o7xe1guvb2G__-Ai%5ay
> zjQJM=>o1xnL=;2dlk_yTZ(zfi()gFme-
> B{)<KHc%@d#`o{xetN at mIxR{+juJynduC
> zK7p;o|ApgQ#uvtvTJ|T*Uo-
> !YxlJxL1hx@>&tbUz`6$d^Gym6gC!!bvJBWY3Yhwys
> zE?NJTGyZC(|1Nh+aXbRwoS3HWdGUyNqIzY_zq7+%%zr&Rf2d$P at jp4UIdm`
> cNBo~q
> zV^YZ?u&8sIn%fYIe_;NrC{((-`bzESs}(xjLs{Lj@=pq8b?cT_H8ye5UDeaNCr(OJ
> zYbRjiFV`B`yIvFZ3WR?>B(4R_|EftCfBq|B{)qk$7~H4dAlF_+zyz2j^Z)otj6bix
> zp!~;IR8$LPJppF<Eb*WE3_kw)0sp7ISCK{&c#HTi%EbK-
> TT5;Kv%G#qQ~cxSmu97@
> zEB9jYCp`Zd48%YD@&8TY-TB!?X{t*)C6xgV=D!JuzXh6-Dh`2fh=0eg@$t8!z_vfS
> z_g{*?3e}Wq!*4w-m-t)S&-
> Fu^8uu#4KeSzMQcAW`^Bn#<`%nC{g};fWEiWeiEv8!W
> z&k+AYa=h{WJDvZHWwQQ@@lX0aP3>)i=buk<@-JzY-
> #si7{uuu@#DDZ%R{qsm(;Yni
> zzDkD2r2nRNL>?i~f%sSVja=)_*#6JxZ067Q2aEraEigYf@~Y;yTk(elI`%AM{@We
> ?
> zy8VxM{%zqOO!BHb=34Pr1<Y7?F#lZV`xm<XUr7G#$oF4#k-WP9&0j;-
> x3O3CTxsQh
> zFnZyc|7A4sNAhoD_DABM%bIxA8H4fo=UEPaUHm`Ggg^H8Iga=zZ|D6NSp4U
> M4u8}B
> z7vYcbpG5peY`5$W6o32rFx&ocj%~MtWy0T$PTlggt-R{^Q*r(G9PRMeIDnA-
> FEakx
> z&tX}zSIzvvihqX2-_IQX1MjhLJ6I<B at 7(CrE&m|JtG-
> )<e}8HkB^BWL5AU&XJ6LM6
> zKcfq)E5!fl at ia{Hs+$J!{J-rvZal-~JpX)htixa903!am;{Oa&)Bo(zne6{vhr|Bo
> zY$yMGNW-
> 6HVt at 49!_x9DUbQ(3%YVZDx1=;%|7nUZ$Dcsp?4Di~JPXgimr`Q$4{01g
> zEHl}klFN%LgSojU1%r86qYJN~bOobFb}!GWtcv~+B-
> y&Z`tkD_UUg$O%|BZ&s4 at Mn
> zZ2$X)`D+|NA(9Dy6HQxw*_mE-
> JH<30{Mr8W0r+D*OD!g_ueVpdlZ)9O=HD^QUt at oS
> z>_HId<5kyn!1%NMsXog*{_ at x?_6K_gNyNWN4()#j?SJt^8GkXdSgpBzy(;@F
> eEc1J
> zsm(uIGXZ6p>HXLK{<5rpbspnY=bdQf-zYFWF}6QfIrb-
> {aX_<7?2n12Ee}+B)#zTB
> z{o(O<5TO59&r*vCw7bfymQ`T!=dAyedpY)BGykXX!#vFXNdDm|*Lc;mh3x;q
> @?YH+
> z=C4V>7b2O-{!~>Ljj5<8Nq86NY~sJ-JC1*AYutp&`u~)}-
> !%T3{BKp&h1DY~$`hXd
> za^k-)o#Wry&S!h1JJ|j|3GmmoA+ovz-
> XQ*GKYw`LLYFJ%KOe9^F1Jf at 90I;;z3R(t
> z*#0B7KV#`rsl5KhHs0-E88-gP{QrL9zxYfm|9^oS&u}^G|Cf&bYnETa)#WEZ;Lci#
> zKiP)wKbi@|Ujf}p6^FpI8D5pP2b=%1{;vb#e*`X0pqBXGRf^|-
> TMER#;k`@E8N~m*
> zFF3P+`C$DY?(o+PzvhOd#sLB|iT~@l`1~^mh(ABjxSSXX47$myhM$3tzdsyh&p
> #78
> zYTt+zu5dQ-&o06256}N^prj@||JThwS!VM8Nc at BSi1z-
> ?tA?IT{x at L#i|v01h`+L1
> zmVXff?O*k(xvyd0|7HH0f%sdbU#Vjg=s^4zj54}Dt;)<F$v+@$aRLk9 at TzOG$*
> BVz
> z%zs{iZT~gl=RiwRB}`xm at t@ispZ_57&*8S^r<uT=#Q*qixcwgi#Q&Ikl^S6J`!;#i
> z$xE^MC)=N*iH`qS;@`pu59w#ePrNE`Al3x)pA5vGV690lCeUs(#XsNE0D{5%rvd
> L@
> zP-9ZbBJk1YUNvzSHvi%G-
> &y2%<M&@p_?w5truSc#C;Z|&@f_OEr`jy!@2_F`uikX{
> zYqp;<f5|@v{(YAb|Dqn&{yQlD)%h2i=l}d}Ao-WD2hj8!pZdF{|H-wcJJ|kAb at -
> e7
> zZ^GY1)0U?Z|Cg=(cV_-
> P{+<WuKi0F<Vgdo;KmR=@Yd%>2Kd8a%4;FtS`DgYI at u^eJ
> z!Sm0&M at wZq|IvisdRQj>&HBtWT3zf at S-0W&H-
> ?g{i23W*e_1B{G5#Hh|5uOl{%b7%
> zPpLEi)NH at -u*@|7m-R3E`K&AQsmor)_Mfu-Uq8~;e^dS|;g9M6v!y=uTx-
> &QVEvK#
> zFTKR!Z^*wS{4xH6M)}l)_vrl#<Ug&4!(a0Pz~7%0`;YMtj`gXV_u${Z&b!9puW>*i
> z`LFE#k23#!y27Wt-?IM)8-IsUs3OmQO!;R-
> |1tf4kNBV7$BI8MH{HSZf5u^s{%aP1
> zDgRQoiNEB(vT08r?^EYn-+#yQU$trJ=)Y$Di}TNz_{;uloBuU8`qb9dmi;NPOWglu
> z{cjxhKWkn9c>lGD|M-
> z(E5??VXD9j^z@%9|)qatce{Y#Pd0WC>q9lO7sU49=2;95C
> zr|#*7 at Bey-
> oIBR|YtVo3KSvnr&ThHirxrBEzQ4fs=d=@S{>J^khVSo)|G|DLwU78z
> zqc57l?_blC9sZj4-
> )uPlu<U=FwA!a;x3lsO6zKj=SjP7MZNUDR+7Wq#z+?aMspiXR
> zQV$%=|9W8k5ok)PI0RmQ*Qc)k2_JudJ=L~98uyR&{Uh<eVJi0Kr#^LCN6Nne`
> rk5o
> zV)Gy2kMZyInNJ-
> *8{^ORXFag~i}ftEn85b!K9yO5#lJECOMvx9A&V3Ep7{T=0FVEi
> z3i$u=-lgVF;$MCWIn{uJ^?w5p{{S>4RU8685&y5B!EiADZov8r)|%8}0{e;o|E<RN
> z9}NZ8UxX}9;IJJ&)w?C0f1ook|HONjnltwK)Q-
> ;h{O186{z0hX1ZEQdr+>u0KhE~Q
> z=Lu&2C*Hf%yoLDZ&&TJVZvgRELKP=4oA at 6!4d4Ix3*i63dzYGXi2oC_F#j9dpA
> sPc
> zQ>fwunl|*S$NMu`^TF$1&s8|~UsIjJgR)KjH<l;*+B+lkH}$LFht~SLasL-TC4|4`
> z(TFI9z~VH&s@#m}Ki5L`pT=|{ml^^~h=1+h*s_=p=8x<@HMb-
> +!UXOn{zH~v`p-}4
> zMaosc at h7tXI!y4;etH-CRo(#J|Ap<pet3|x{-x=b!*gZ))c}eTokIMt*ueY0F#b!=
> zmHAH;zC%7eW{F=tvx?$>K>mw{+WbxH?-
> KupJ({9B{c7q2YyWAj=?=F4s~!HP{inj;
> zMAMd!C;sQHwe~+6`SU2f5YT_DXQ{;mCK3O`AH(vWv;Oa)*g~HFnCy=!{#^DS
> +4^_x
> zgMQWUX3l?t?LR7 at xM$|C34gZs{|bMbuj$`q#DD+$c>aN_{>SET+W#y3P2_F)
> <HSEN
> z4cq_4_8<BF8rHMaVgjum@~d4xWBzBh|LZ#0`cH0X*MrPccTE4~`*(96^{c*5S
> o%N4
> z6{sU%{&)0o?2jh?KPd74CX@%{m%Zp$a|^BgF9in*T~3()PyHPJhW*zv|962HQ
> (X3M
> zziKyzzdvZsf5rUY2#>#-
> 2`KIV%@zMo3}~0j%C&w~nvDB at visZmuiO95yW_?Fy8w?V
> z9{!47U4Ae7f3WYLe&_6e327V<EHm-1DH<6J<;x0Wlh^zzcMIp=Xgek5(bT)-
> `R6u(
> zf4v)}z?DD?;(tbeEdGS;f3E_^{)qm&GCdf<__zG(wm at T8|4#?_A58y=UUwexA
> Mp<U
> z{?)Av(|^<Vmsx&g;n;+aK{;%*U!{7Qv;Ge-
> =_1>ofzJLf&avTk(EKM~=AUkK>XuLc
> z%&$Iu+u{$!{~-
> M9_8?a}0!xU0v*q~syQ;Tie+>F>ntw|ECHtxD+TvFer}O%kIsX#R
> zKN0 at A=Pk0j1b!s`1%t5tM{NK9b+uXlk^D=+u34d+tWejiU}Aqs^4wj1)&FeE|5
> I7_
> z$<)7M{{Aa${-*ph;(x2pFJ8&0-F|ibddvS%8&4ix#{Bovp9-%(W^4SPEHl}E(SMt4
> z)vtclak91k2<iWYG)uMkYw{mvlT7$WYp(nGir at Td=?hl=J&6CTVGe(d|2dmvg;j
> +`
> zh3?&Ysw-
> +nRMd1$_yw>HEz;GNQ?2;_EgD>wi03~u0sf|TL>?h9 at u+mQVjBMaQy(z?
> zMp~CM6M_C6($y7jv1XeOuJt3Z{%CGVYJ>?Sbxc=tcH;Z5p911P!)?n?Gl8R-
> e>rY{
> zh6C|$=3b>nm_VzHbhWNHe5L=%_GfZ<{av>KM&FD`qX at Jn{=qjf|3CB31^oX
> }&C98Q
> zz+J>YtsKw)fb9P=bSdH}0&9u?-KS7eAK+m9NA at 29O-U7pz$?VRHD-
> RS{I^K_mB7Ub
> zyh{APZ;sD at ko}K%?^5$E;(x(*Z2gPv&$G_{$54*2`!fg}6G&H0hv50g!u*5ujS)Ex
> zodEMM+sc}4KI-Vd#{X|_Nos@%983K7z1%E(sr^}pzr25GS)syI;(x<jZ2x04|DbLI
> z4BENW^Q5u;zxEH<AI<ugV8sdeh=1=4>;<5X{^MOpO$`C&zjy}z{(E5lqlv%LbSI)
> 1
> z0)FCu4SjzTIimGHq}hLmv?X<H0?hx1)p-8T1NyIt{};A60p`EP%aJ|igZ2L_Ape88
> zC8-f6P)Ypr-^KkuOZwRHC%ng3jzcF<nxC#VG{E9NS^uX2-
> (NfQ|5f6&FoO6`e}KuF
> z53Y4%XIuZp{buHc)c7ayzqk+X|J>&A7xx=N*Ieg5;=lJbJpN=Q5Pxp&RceF at d_
> esF
> z(H{3d at 1dc>6#pD<TYj1ed_??<Uc$%U3xN1%bFWe(OyKC#(pA#l at Rj~2kH4+
> yQ&p`0
> z{Ec at x4xPX%;-7pz{{Bm;Qf&U>e?D~h)WQ?Q|HB)w_g}7cg7f_&-
> SP|ld32Tizu4nh
> zd+mv8U^hJf%qb3k-Rm#$4+?*b|C_{r!%ohBWzPT1_8-
> xItY at jk1Pa%ls0MVRK@~Wd
> zKcfFYQ&PntP(u8t{4W;&$@YK5D0}?X*?*Rq_TSn0Z-WV+fa&hd8LCYgo`3J-
> aW;Rk
> z|9{S(aQDwLly at SQe}naZufty#{==^aGX7%E=S<@Nzyy5$a}n(=wfqm7<~cM1
> vp+cr
> zZ-0`%%1|GT;QUwS{M$VKBKZ$Bk48i>1iZw5^-
> #?J$@b at ZNB?#Hf0jx9hZxW<m*0M!
> zp_*;PzkjjV;ZHwY50(jkS3GqDKNA1HS6cR`wvHgq1>2wN0R4}1s}#8qXt*UqojU
> |u
> z|6=>I_;h>x)!84K|K!O0#|3yyaoMg6HSl>W|CKTS8}rZYW%Jj$pIIjJpBT_CmskI
> m
> zp>n+~;rS2p{^in at 6vrXZt3g05UyRuww*QFziPMb~xe#Ff8xMj%^8V}6l@!Mz!
> 2E|T
> zW6N$nxYn(dtAO8s#s6dGh1A$h{QHf=zd!h}!(aSA2wk8~!+<(w4L<+LFEP(Qd2
> VW&
> z|49Bl``OG+3aIusH|6<HrRiz0{khHIuM0nCnY{m+Xxj1>O#<q;et7=LR~-Jj?Jq1d
> zy?;gYzpL(1V!y=y<63K)2Got6tnY7*HvJkr|9lzXZ)!*65ds5R1=Q|MOxAp`{n_ut
> z9~$+a^84#rl>GlTogu9QYSky4e;CXEUpCm8e`+Q`oY7hAk52m{vh#fbb<-
> yP{!X&d
> z{;>W}C+Che|JOL6gCsM}e`NjLeg<h70adsNTYqOO^*dmHB2QP&OayKX29$c=
> RLhpL
> z{;zQSpC<c{>3_nfANH)w4ygN{wDf<B=_xS(EZQn>*&ofUk-
> QUm!rw&GmJiDhs1X&G
> z{fGE3cjlkE{2MHj?;m0O&pSDww(h~^KWzV(1NH~&S!ywXZ;1a#cd=zLAIu-
> IKjxOC
> zMwq}3;@|2RZ2uQOrB9Eu?Z0mPCHHi`*#9tL{m=G20;=so%l}}s|E&KAe|?W4j
> V3UJ
> z`1gCPL3EMpIqQF$<DL1B<`018KcfGx6zd8~iT~lJTHham^nV#J|Eb%9T<HkRIxV
> 2u
> zwZZalu>OyC_TL3H^M97f{8L9gBAa at 8K>fRi_5Ilak<$2Q%>VNf9Q&i$|H$)y)A
> $?l
> z|0nkM*XHyJs7rcS at juY|mvZ*sg)|#rSSI=(Ux#B$pCkTL?zX;vWYmA2|9lAOe{3
> Ie
> z?M~o>3j%6KCoKM)`IiCvzubEhNi2b1hXhpl#n}9l`FD5bKf3ta*goXioxr%_fSNk9
> zxqF2u3G=@JSbvGSMNSO_<`Vx$ZZ=eM#LPbjh=0aflUht*en~)G_Zpsm=0a!x
> g`^+;
> zbM)sv;@@!!_Ws5CKi{$cn%A#C=RcMptrUz3sOfXDUzYjb?&!Z}`5kLaYFPw691
> ~Cv
> z`SASPX94eDf)*#RbZkJ~*%+VyoCElO at ZP27a^l}43D<ul{$Hr#1RlO4poXl(^Pl|I
> z!}h;v+&>;#|C0Py;3IgH_)oqQ+ke61FTx+}TB;F&;rCGd!(M#<9kTyLz~Tf-i2qHG
> z;p^}Jp{g8zCH4nrtgAUOH&b2o631Ve^S|-
> >%THndv!+qro at a`GW_iLVpCN|V5&!)s
> zHG=uCJl58KP58NoWwQTBqo7fuTk|v3yKgt)`19JR;<%@*|LYz8I{y#LgnwLw^$
> PDH
> z{`XT-
> ZG=D1e;xt!zg{O&;7Z^T;$Jfh^S`nF|8OE^e at yG|vj4(<B<=cUs&Nmp{ZB4%
> zeMpXg`ENbi=C51-
> LiYa(e;ewu!I|pPVw`_YJDb1G|H(3w{!9Fc&HwOoGS%BFt@!^+
> zyTtup*8c~F*!*c3()D1OjK8jU>Ieo8$yB>*t^M!N{HG|{=C50Sq4|HF%>V0PcD
> *>M
> rFjK9XhUMR8{oi(p%|EDl0jAe4 at xQqeuPfMaO{VH_1<yat at 4x>AP`)FD
> 
> literal 0
> HcmV?d00001

I'm shocked that this 100K file compressed down to something so small.
But that's good, I guess.

> 
> diff --git a/tests/Functional.logrotate/fuego_test.sh
> b/tests/Functional.logrotate/fuego_test.sh
> new file mode 100644
> index 0000000..64a83b2
> --- /dev/null
> +++ b/tests/Functional.logrotate/fuego_test.sh
> @@ -0,0 +1,19 @@

I think you probably need a NEED_ROOT=1 here

> +function test_pre_check {
> +    assert_has_program logrotate
> +}
> +
> +function test_deploy {
> +    put $TEST_HOME/logrotate_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
> +    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
> +    put -r $TEST_HOME/data $BOARD_TESTDIR/fuego.$TESTDIR/
> +}
> +
> +function test_run {
> +    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
> +    export test_host=$SRV_IP;\
> +    ./logrotate_test.sh"
> +}
> +
> +function test_processing {
> +    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
> +}
> diff --git a/tests/Functional.logrotate/logrotate_test.sh
> b/tests/Functional.logrotate/logrotate_test.sh
> new file mode 100755
> index 0000000..dd5ce37
> --- /dev/null
> +++ b/tests/Functional.logrotate/logrotate_test.sh
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +for i in tests/*.sh; do
> +    sh $i
> +done
> diff --git a/tests/Functional.logrotate/spec.json
> b/tests/Functional.logrotate/spec.json
> new file mode 100644
> index 0000000..cfd6646
> --- /dev/null
> +++ b/tests/Functional.logrotate/spec.json
> @@ -0,0 +1,6 @@
> +{
> +    "testName": "Functional.logrotate",
> +    "specs": {
> +        "default": {}
> +    }
> +}
> diff --git a/tests/Functional.logrotate/test.yaml
> b/tests/Functional.logrotate/test.yaml
> new file mode 100644
> index 0000000..1b2d2d9
> --- /dev/null
> +++ b/tests/Functional.logrotate/test.yaml
> @@ -0,0 +1,23 @@
> +fuego_package_version: 1
> +name: Functional.logrotate
> +description: |
> +      Logrotate is designed to ease administration of systems that generate
> large numbers of log files.
Please keep lines in the description field in the test.yaml file to 80 chars or less.

> +      It allows automatic rotation, compression, removal, and mailing of log
> files.
> +      This is a simple test to check the common options and features of
> logrotate.
> +license: BSD-3-Clause
> +author: Wang Mingyu <wangmy at cn.fujitsu.com>
> +maintainer: Wang Mingyu <wangmy at cn.fujitsu.com>
> +version: 1.00
> +fuego_release: 1
> +type: Functional
> +tags: ['logrotate']
> +params:
> +    SRV_IP:
> +        description: the IP address of your host - Defined in board file
> +data_files:
> + - logrotate_test.sh
> + - fuego_test.sh
> + - spec.json
> + - test.yaml
> + - data
> + - tests
> diff --git a/tests/Functional.logrotate/tests/logrotate_01.sh
> b/tests/Functional.logrotate/tests/logrotate_01.sh
> new file mode 100644
> index 0000000..5aed3e3
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_01.sh
> @@ -0,0 +1,13 @@
> +#!/bin/sh
> +
> +#  In the target to execute command logrotate and confirm the result.
> +#  option : --help
> +
> +test="logrotate1"
These are not very descriptive testcase names.

I'd prefer something like test="logrotate-usage".  but since the filename encodes the
testcase number, maybe it's best to keep them the same.

> +
> +if logrotate --help | grep "Usage"
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi
> diff --git a/tests/Functional.logrotate/tests/logrotate_02.sh
> b/tests/Functional.logrotate/tests/logrotate_02.sh
> new file mode 100644
> index 0000000..4e16d0b
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_02.sh
> @@ -0,0 +1,23 @@
> +#!/bin/sh
> +
> +#  In the target to execute command logrotate and confirm the result.
> +#  option : -dv
> +
> +test="logrotate2"
> +
> +if [ -f /var/lib/logrotate.status ]
> +then
> +    rm -f /var/lib/logrotate.status
> +fi
> +
> +cp data/test.conf /etc/logrotate.d/test.conf
> +
> +chown root /etc/logrotate.d/test.conf
> +
> +if logrotate -dv /etc/logrotate.d/test.conf
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi
> +rm -f /etc/logrotate.d/test.conf
> diff --git a/tests/Functional.logrotate/tests/logrotate_03.sh
> b/tests/Functional.logrotate/tests/logrotate_03.sh
> new file mode 100644
> index 0000000..98a850d
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_03.sh
> @@ -0,0 +1,19 @@
> +#!/bin/sh
> +
> +#  In the target to execute command logrotate and confirm the result.
> +#  option : -v
> +
> +test="logrotate3"
> +
> +cp data/test.conf /etc/logrotate.d/test.conf
> +
> +logrotate -v /etc/logrotate.d/test.conf
> +
> +if tail /var/lib/logrotate.status | grep testlog
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi
> +rm -f /etc/logrotate.d/test.conf
> +sed -i '/testlog/d' /var/lib/logrotate.status
> diff --git a/tests/Functional.logrotate/tests/logrotate_04.sh
> b/tests/Functional.logrotate/tests/logrotate_04.sh
> new file mode 100644
> index 0000000..08bfbf5
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_04.sh
> @@ -0,0 +1,43 @@
> +#!/bin/sh
> +
> +#  In the target to execute command logrotate. Verify that the rotate file is
> created in the specified directory.
> +#  option : -v
> +
> +test="logrotate4"
> +
> +if [ -f /var/log/testlog* ]
> +then
> +    rm -f /var/log/testlog*
> +fi
> +
> +if [ -f /home/test/testlog.sh ]

Is this the Fuego test directory?  Is this required to be present
on machines, before the test starts?
> +then
> +    rm -f /home/test/testlog.sh
> +fi

What is the purpose of these lines?  Why is /home/test/testlog.sh being removed?

> +
> +if [ -f /var/lib/logrotate.status ]
> +then
> +    rm -f /var/lib/logrotate.status
> +fi
> +
> +ntpdate $test_host
Need an assert_has_program for ntpdate as well.

> +
> +cp data/test.conf /etc/logrotate.d/test.conf
> +
> +touch /var/log/testlog
> +
> +chmod +x data/testlog.sh
> +data/testlog.sh
> +chown root /etc/logrotate.d/test.conf
> +logrotate -v /etc/logrotate.d/test.conf
> +if ls /var/log/testlog.1
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi
> +
> +rm -f /etc/logrotate.d/test.conf
> +rm -f /var/log/testlog*
> +sed -i '/testlog/d' /var/lib/logrotate.status
> +sed -i '/logrotate/d' /var/lib/logrotate.status

These sed lines are quite dangerous - especially the /logrotate/d one.
Are you sure you want to remove all lines from logrotate.status
have have logrotate in them?

> diff --git a/tests/Functional.logrotate/tests/logrotate_05.sh
> b/tests/Functional.logrotate/tests/logrotate_05.sh
> new file mode 100644
> index 0000000..a5f61dc
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_05.sh
> @@ -0,0 +1,30 @@
> +#!/bin/sh
> +
> +#  In the target to execute command logrotate.Verify that the rotate file is
> created in the specified directory(Specify the file size).

Please keep lines to 80 columns.

> +#  option : -v
> +
> +test="logrotate5"
> +
> +if [ -f /var/log/testlog* ]
> +then
> +    rm -f /var/log/testlog*
> +fi
> +
> +cp data/test.conf /etc/logrotate.d/test.conf
> +
> +cp data/testlog100k /var/log/testlog
> +
> +chmod +x data/testlog.sh
> +data/testlog.sh
> +chown root /etc/logrotate.d/test.conf
> +logrotate -v /etc/logrotate.d/test.conf
> +if ls /var/log/testlog.1
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi
> +
> +rm -f /etc/logrotate.d/test.conf
> +rm -f /var/log/testlog*
> +sed -i '/testlog/d' /var/lib/logrotate.status
> --
> 2.17.1

Thanks for the patch.
Please respond to the comments, and re-submit it.

-- Tim



More information about the Fuego mailing list