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

Wang Mingyu wangmy at cn.fujitsu.com
Mon Nov 18 10:49:16 UTC 2019


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    |   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..1dc679f54731568a9cbda775a663b7ea51595fe3
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$S6WifZ-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 hgcf0KJU
z{DUqHQgM)EM*CAVG8F2b at Y7Gvsn4gVdGmPw+4c)}qPB$Jf7=55P3?$0Lg3yPQdF<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$w6|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&pP~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|D6NSp4UM4u8}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(;@FeEc1J
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%rvdL@
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#j9dpAsPc
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*5So%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=UUwexAMp<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|5I7_
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<~cM1vp+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_CmskIm
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(Qd2VW&
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|?W4jV3UJ
z`1gCPL3EMpIqQF$<DL1B<`018KcfGx6zd8~iT~lJTHham^nV#J|Eb%9T<HkRIxV2u
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{3Ie
z?M~o>3j%6KCoKM)`IiCvzubEhNi2b1hXhpl#n}9l`FD5bKf3ta*goXioxr%_fSNk9
zxqF2u3G=@JSbvGSMNSO_<`Vx$ZZ=eM#LPbjh=0aflUht*en~)G_Zpsm=0a!xg`^+;
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

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 <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_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





More information about the Fuego mailing list