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

<[email protected]>
Newsgroups dev.linux.lists.fuego
Message-ID <[email protected]>
Thanks for addressing my comments.  It looks good.

I've applied it, but I'm still testing it locally.  Can you give it a test and 
let me know if you see any problems?

Thanks,
 -- Tim


> -----Original Message-----
> From: Fuego [mailto:[email protected]] On Behalf Of
> Wang Mingyu
> Sent: Monday, November 18, 2019 11:49 AM
> To: [email protected]
> Subject: [Fuego] [PATCH v2] logrotate: Add test cases for command
> logrotate.
> 
> 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 <[email protected]>
> ---
>  tests/Functional.logrotate/data/test.conf     |   8 ++++
>  tests/Functional.logrotate/data/testlog.sh    |   8 ++++
>  tests/Functional.logrotate/data/testlog100k   | Bin 0 -> 105984 bytes
>  tests/Functional.logrotate/fuego_test.sh      |  23 ++++++++++
>  tests/Functional.logrotate/logrotate_test.sh  |   4 ++
>  tests/Functional.logrotate/spec.json          |   6 +++
>  tests/Functional.logrotate/test.yaml          |  24 ++++++++++
>  .../tests/logrotate_config.sh                 |  28 ++++++++++++
>  .../tests/logrotate_help.sh                   |  13 ++++++
>  .../tests/logrotate_rotation.sh               |  42 ++++++++++++++++++
>  .../tests/logrotate_size.sh                   |  39 ++++++++++++++++
>  .../tests/logrotate_status.sh                 |  26 +++++++++++
>  12 files changed, 221 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_config.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_help.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_rotation.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_size.sh
>  create mode 100644 tests/Functional.logrotate/tests/logrotate_status.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..663abe3
> --- /dev/null
> +++ b/tests/Functional.logrotate/data/testlog.sh
> @@ -0,0 +1,8 @@
> +#!/bin/sh
> +
> +today=$(date +%s)
> +# there are 86000 seconds in a day
> +yesterday=$(( $today - 86000 ))
> +ddch=$(date --date "@$yesterday" "+%Y-%m-%d")
> +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@CZ4y=Z>I|EIwx%-6guez*l;{ECU-I)25dX$>-
> %vpRqnejf1A)hgf1_4M
> z7;4#K*8gz@nEk0KzI>#vQI=m>IJPjWrn;)EB&)b8tE^_!NHSSj#T8kjDs{L1rDXps
> zN>PjQT9E#?9bo#!nE#v+Hvb$=WtJ6=FRjv4@sw9omsS?%BszZ2C1ok<`|`us{*
> >!@
> zv5fgIclhUODzi-ZYXC)wiirR24b5QwUpV}AlNOc<|0u|s(+c80cS&=Yzvpt>{^V)e
> zWSQ{S0E!Y#CjNsqCc*q~A>+>T|L#$3#GbND#@|>f@vlD~nWEmjt}*e)#^2f&
> Hvjzi
> z%~_=^6aCi!iV{6PIz_Es*c8_P7f!bM2fIc!5_8HjdH;%m;&QoeBJqE{A@hgcf0KJ
> U
> z{DUqHQgM)EM*CAVG8F2b@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@DA}m^T?$5!kAL#KOK1gin&cLH3Z%z{vJQhf0?8II{&ApI}ybY*hu_;or&
> B3
> z{SJSf|1G8qxzrHYPW<N#Yow_W5wZQLEU@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@4YNO?gkJy
> ~{z9sn
> z^g$CIf5$|gO8he(e-
> Zxi@0QYd1e&c$RqMN8@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@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@mIxR{+juJynduC
> zK7p;o|ApgQ#uvtvTJ|T*Uo-
> !YxlJxL1hx@>&tbUz`6$d^Gym6gC!!bvJBWY3Yhwys
> zE?NJTGyZC(|1Nh+aXbRwoS3HWdGUyNqIzY_zq7+%%zr&Rf2d$P@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@7(CrE&m|JtG-
> )<e}8HkB^BWL5AU&XJ6LM6
> zKcfq)E5!fl@ia{Hs+$J!{J-rvZal-~JpX)htixa903!am;{Oa&)Bo(zne6{vhr|Bo
> zY$yMGNW-
> 6HVt@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@Mn
> zZ2$X)`D+|NA(9Dy6HQxw*_mE-
> JH<30{Mr8W0r+D*OD!g_ueVpdlZ)9O=HD^QUt@oS
> z>_HId<5kyn!1%NMsXog*{_@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@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@BSi1z-
> ?tA?IT{x@L#i|v01h`+L1
> zmVXff?O*k(xvyd0|7HH0f%sdbU#Vjg=s^4zj54}Dt;)<F$v+@$aRLk9@TzOG$*
> BVz
> z%zs{iZT~gl=RiwRB}`xm@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@-
> e7
> zZ^GY1)0U?Z|Cg=(cV_-
> P{+<WuKi0F<Vgdo;KmR=@Yd%>2Kd8a%4;FtS`DgYI@u^eJ
> z!Sm0&M@wZq|IvisdRQj>&HBtWT3zf@S-0W&H-
> ?g{i23W*e_1B{G5#Hh|5uOl{%b7%
> zPpLEi)NH@-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@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@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@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@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@visZmuiO95yW_?Fy8w?V
> z9{!47U4Ae7f3WYLe&_6e327V<EHm-1DH<6J<;x0Wlh^zzcMIp=Xgek5(bT)-
> `R6u(
> zf4v)}z?DD?;(tbeEdGS;f3E_^{)qm&GCdf<__zG(wm@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@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@Td=?hl=J&6CTVGe(d|2dmvg;j
> +`
> zh3?&Ysw-
> +nRMd1$_yw>HEz;GNQ?2;_EgD>wi03~u0sf|TL>?h9@u+mQVjBMaQy(z?
> zMp~CM6M_C6($y7jv1XeOuJt3Z{%CGVYJ>?Sbxc=tcH;Z5p911P!)?n?Gl8R-
> e>rY{
> zh6C|$=3b>nm_VzHbhWNHe5L=%_GfZ<{av>KM&FD`qX@Jn{=qjf|3CB31^oX
> }&C98Q
> zz+J>YtsKw)fb9P=bSdH}0&9u?-KS7eAK+m9NA@29O-U7pz$?VRHD-
> RS{I^K_mB7Ub
> zyh{APZ;sD@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@d_
> esF
> z(H{3d@1dc>6#pD<TYj1ed_??<Uc$%U3xN1%bFWe(OyKC#(pA#l@Rj~2kH4+
> yQ&p`0
> z{Ec@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@jk1Pa%ls0MVRK@~Wd
> zKcfFYQ&PntP(u8t{4W;&$@YK5D0}?X*?*Rq_TSn0Z-WV+fa&hd8LCYgo`3J-
> aW;Rk
> z|9{S(aQDwLly@SQe}naZufty#{==^aGX7%E=S<@Nzyy5$a}n(=wfqm7<~cM1
> vp+cr
> zZ-0`%%1|GT;QUwS{M$VKBKZ$Bk48i>1iZw5^-
> #?J$@b@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@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@8K>fRi_5Ilak<$2Q%>VNf9Q&i$|H$)y)A
> $?l
> z|0nkM*XHyJs7rcS@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@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@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@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@xQqeuPfMaO{VH_1<yat@4x>AP`)FD
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/tests/Functional.logrotate/fuego_test.sh
> b/tests/Functional.logrotate/fuego_test.sh
> new file mode 100644
> index 0000000..c6e0579
> --- /dev/null
> +++ b/tests/Functional.logrotate/fuego_test.sh
> @@ -0,0 +1,23 @@
> +NEED_ROOT=1
> +
> +function test_pre_check {
> +    assert_has_program logrotate
> +    assert_has_program ntpdate
> +    assert_has_program date
> +}
> +
> +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..d43799f
> --- /dev/null
> +++ b/tests/Functional.logrotate/test.yaml
> @@ -0,0 +1,24 @@
> +fuego_package_version: 1
> +name: Functional.logrotate
> +description: |
> +      Logrotate is designed to ease administration of systems that generate
> +      large numbers of log files.
> +      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 <[email protected]>
> +maintainer: Wang Mingyu <[email protected]>
> +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_config.sh
> b/tests/Functional.logrotate/tests/logrotate_config.sh
> new file mode 100644
> index 0000000..bc8d707
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_config.sh
> @@ -0,0 +1,28 @@
> +#!/bin/sh
> +
> +#  Turns on verbose mode and confirm the result.
> +#  option : -dv
> +
> +test="test config"
> +
> +if [ -f /var/lib/logrotate.status ]
> +then
> +    mv /var/lib/logrotate.status /var/lib/logrotate.status_bak
> +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
> +
> +if [ -f /var/lib/logrotate.status_bak ]
> +then
> +    mv /var/lib/logrotate.status_bak /var/lib/logrotate.status
> +fi
> +rm -f /etc/logrotate.d/test.conf
> diff --git a/tests/Functional.logrotate/tests/logrotate_help.sh
> b/tests/Functional.logrotate/tests/logrotate_help.sh
> new file mode 100644
> index 0000000..37390df
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_help.sh
> @@ -0,0 +1,13 @@
> +#!/bin/sh
> +
> +#  In the target to execute command logrotate and confirm the result.
> +#  option : --help
> +
> +test="help"
> +
> +if logrotate --help | grep "Usage"
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi
> diff --git a/tests/Functional.logrotate/tests/logrotate_rotation.sh
> b/tests/Functional.logrotate/tests/logrotate_rotation.sh
> new file mode 100644
> index 0000000..f0d5e92
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_rotation.sh
> @@ -0,0 +1,42 @@
> +#!/bin/sh
> +
> +#  Verify that the rotate file is created in the specified directory.
> +#  option : -v
> +
> +test="log rotation"
> +
> +if [ -f /var/log/testlog* ]
> +then
> +    rm -f /var/log/testlog*
> +fi
> +
> +if [ -f /var/lib/logrotate.status ]
> +then
> +    mv /var/lib/logrotate.status /var/lib/logrotate.status_bak
> +fi
> +
> +ntpdate $test_host
> +
> +cp data/test.conf /etc/logrotate.d/test.conf
> +
> +touch /var/log/testlog
> +
> +cp data/testlog.sh data/testlog_test.sh
> +chmod +x data/testlog_test.sh
> +data/testlog_test.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*
> +rm -f data/testlog_test.sh
> +if [ -f /var/lib/logrotate.status_bak ]
> +then
> +    mv /var/lib/logrotate.status_bak /var/lib/logrotate.status
> +fi
> diff --git a/tests/Functional.logrotate/tests/logrotate_size.sh
> b/tests/Functional.logrotate/tests/logrotate_size.sh
> new file mode 100644
> index 0000000..2e215cd
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_size.sh
> @@ -0,0 +1,39 @@
> +#!/bin/sh
> +
> +#  Verify that the rotate file is created in the specified directory.
> +#  option : -v
> +
> +test="log rotation size"
> +
> +if [ -f /var/log/testlog* ]
> +then
> +    rm -f /var/log/testlog*
> +fi
> +
> +if [ -f /var/lib/logrotate.status ]
> +then
> +    mv /var/lib/logrotate.status /var/lib/logrotate.status_bak
> +fi
> +cp data/test.conf /etc/logrotate.d/test.conf
> +
> +cp data/testlog100k /var/log/testlog
> +
> +cp data/testlog.sh data/testlog_test.sh
> +chmod +x data/testlog_test.sh
> +data/testlog_test.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*
> +rm -f data/testlog_test.sh
> +if [ -f /var/lib/logrotate.status_bak ]
> +then
> +    mv /var/lib/logrotate.status_bak /var/lib/logrotate.status
> +fi
> diff --git a/tests/Functional.logrotate/tests/logrotate_status.sh
> b/tests/Functional.logrotate/tests/logrotate_status.sh
> new file mode 100644
> index 0000000..36f61a3
> --- /dev/null
> +++ b/tests/Functional.logrotate/tests/logrotate_status.sh
> @@ -0,0 +1,26 @@
> +#!/bin/sh
> +
> +#  Turns on verbose mode.
> +#  option : -v
> +
> +test="log status add"
> +
> +if [ -f /var/lib/logrotate.status ]
> +then
> +    mv /var/lib/logrotate.status /var/lib/logrotate.status_bak
> +fi
> +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
> +if [ -f /var/lib/logrotate.status_bak ]
> +then
> +    mv /var/lib/logrotate.status_bak /var/lib/logrotate.status
> +fi
> --
> 2.17.1
> 
> 
> 
> _______________________________________________
> Fuego mailing list
> [email protected]
> https://lists.linuxfoundation.org/mailman/listinfo/fuego
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.