From 6822a5841335b9ec8af59ccaf39f36effb84108b Mon Sep 17 00:00:00 2001 From: Alexander Weiss Date: Thu, 9 Jul 2020 14:18:46 +0200 Subject: [PATCH] Add prune integration tests for many edge cases --- cmd/restic/integration_test.go | 75 ++++++++++++++++++ cmd/restic/testdata/repo-data-missing.tar.gz | Bin 0 -> 6737 bytes cmd/restic/testdata/repo-duplicates.tar.gz | Bin 0 -> 9956 bytes .../testdata/repo-index-missing-blob.tar.gz | Bin 0 -> 8685 bytes cmd/restic/testdata/repo-index-missing.tar.gz | Bin 0 -> 9537 bytes cmd/restic/testdata/repo-mixed.tar.gz | Bin 0 -> 6716 bytes .../testdata/repo-obsolete-index.tar.gz | Bin 0 -> 7954 bytes .../testdata/repo-unreferenced-data.tar.gz | Bin 0 -> 7144 bytes 8 files changed, 75 insertions(+) create mode 100644 cmd/restic/testdata/repo-data-missing.tar.gz create mode 100644 cmd/restic/testdata/repo-duplicates.tar.gz create mode 100644 cmd/restic/testdata/repo-index-missing-blob.tar.gz create mode 100644 cmd/restic/testdata/repo-index-missing.tar.gz create mode 100644 cmd/restic/testdata/repo-mixed.tar.gz create mode 100644 cmd/restic/testdata/repo-obsolete-index.tar.gz create mode 100644 cmd/restic/testdata/repo-unreferenced-data.tar.gz diff --git a/cmd/restic/integration_test.go b/cmd/restic/integration_test.go index 1267db0a0..3868e02bb 100644 --- a/cmd/restic/integration_test.go +++ b/cmd/restic/integration_test.go @@ -1283,6 +1283,81 @@ func TestPruneWithDamagedRepository(t *testing.T) { t.Log(err) } +// Test repos for edge cases +func TestEdgeCaseRepos(t *testing.T) { + opts := CheckOptions{} + + // repo where index is completely missing + // => check and prune should fail + t.Run("no-index", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-index-missing.tar.gz", opts, false, false) + }) + + // repo where an existing and used blob is missing from the index + // => check should fail, prune should heal this + t.Run("index-missing-blob", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-index-missing-blob.tar.gz", opts, false, true) + }) + + // repo where a blob is missing + // => check and prune should fail + t.Run("no-data", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-data-missing.tar.gz", opts, false, false) + }) + + // repo where data exists that is not referenced + // => check and prune should fully work + t.Run("unreferenced-data", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-unreferenced-data.tar.gz", opts, true, true) + }) + + // repo where an obsolete index still exists + // => check and prune should fully work + t.Run("obsolete-index", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-obsolete-index.tar.gz", opts, true, true) + }) + + // repo which contains mixed (data/tree) packs + // => check and prune should fully work + t.Run("mixed-packs", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-mixed.tar.gz", opts, true, true) + }) + + // repo which contains duplicate blobs + // => checking for unused data should report an error and prune resolves the + // situation + opts = CheckOptions{ + ReadData: true, + CheckUnused: true, + } + t.Run("duplicates", func(t *testing.T) { + testEdgeCaseRepo(t, "repo-duplicates.tar.gz", opts, false, true) + }) +} + +func testEdgeCaseRepo(t *testing.T, tarfile string, options CheckOptions, checkOK, pruneOK bool) { + env, cleanup := withTestEnvironment(t) + defer cleanup() + + datafile := filepath.Join("testdata", tarfile) + rtest.SetupTarTestFixture(t, env.base, datafile) + + if checkOK { + testRunCheck(t, env.gopts) + } else { + rtest.Assert(t, runCheck(options, env.gopts, nil) != nil, + "check should have reported an error") + } + + if pruneOK { + testRunPrune(t, env.gopts) + testRunCheck(t, env.gopts) + } else { + rtest.Assert(t, runPrune(env.gopts) != nil, + "prune should have reported an error") + } +} + func TestHardLink(t *testing.T) { // this test assumes a test set with a single directory containing hard linked files env, cleanup := withTestEnvironment(t) diff --git a/cmd/restic/testdata/repo-data-missing.tar.gz b/cmd/restic/testdata/repo-data-missing.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d13c6f789da242866bda35ef06b6ed20d01c03b2 GIT binary patch literal 6737 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 literal 0 HcmV?d00001 diff --git a/cmd/restic/testdata/repo-duplicates.tar.gz b/cmd/restic/testdata/repo-duplicates.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a0325160d6b9320a329b9b324a4180acbf4e4eda GIT binary patch literal 9956 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 Z^zo$)_y2z-0u(rS!>NCc?mh$E{{fBF1>yhz literal 0 HcmV?d00001 diff --git a/cmd/restic/testdata/repo-index-missing-blob.tar.gz b/cmd/restic/testdata/repo-index-missing-blob.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..43c512f76883555fddbd67291abed3d756c2e214 GIT binary patch literal 8685 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 literal 0 HcmV?d00001 diff --git a/cmd/restic/testdata/repo-index-missing.tar.gz b/cmd/restic/testdata/repo-index-missing.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b88810ebde337432cada0f206607a7951d923397 GIT binary patch literal 9537 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 literal 0 HcmV?d00001 diff --git a/cmd/restic/testdata/repo-mixed.tar.gz b/cmd/restic/testdata/repo-mixed.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5108ad9844d47168cbe9085c6985f082f8bbae42 GIT binary patch literal 6716 zcmXX~c|26>{~yV9=KeJAxyZE zrN&OS5i$0`7-N=mp5M{;_uqNFKF@PLpZD^4&ht5hh`(`o8Br2WcqZBZ61k`JtAx~( zaFP1wN_)17vt3!i8cMsuH7CXX?#@{n+AMVgqSW~{28!{f z3fBtBs?XIjtoC2aki2(%&u)2jA+tU5M;=Q>9H;VkQbZhWmN`p`$_ac6INb5Ks*8l0 zK`88l*j*@a;!I^;Q|DI3UI{u!Aw@awTzR|6Lki3%hE!A#7qed^TVA#f-fpHa5y>kZ z^1IyU%@J7+SGX_`*^u-2g05^`QL}=~G_ipct*;i;aQt&-?ZCdC=L#2Ho@Y!HGh2ci zbmnCI_3lIiDTvWR_&!&1$*Mb2UFkz&&Ww&<;tdY_mUKZ*#(L;NnMc`MG%&MPgi;$Y zM5L6v$MZ$R_Bj|4=)NrEChhYU+TeiA4y#yp&3u2$>>U#Z+2IYrdZp@9#Fi#RzmJ5Q#-n|7tKp~OQI&`9FAI8+5DGW6UU)szq0_H zcjx_{PFqL&uKS>1vy{8}93kJk!r$+QhW)ST>2H+iPkvSxpr3c|)*l>=N{bR&C!!Lq z<@DZQL?SoAk-Z>zOZn@LNZ*aOy1m&2yzvB zpL}Ymeb2><^c^p{Kf&j24b6Xe!Mi!bQcXfc-bgl zYQ`^$?;N!Mq@rKS!uOC*2T9lZi7Ss<2=12MQrW3VwlmA6g=rs`E2*iC@wy6$M1*$G z-DMy#TP^pUOK5vm*=*QEd**j7Zdjto=Kj*7${nfVJ?-o4{BvHmJjrjnOlQx#C0U`>p-JK&L)%VPk)k6ZiFDaQ&WnvwSefCN$2UszmEjh;ZV@C(7Y8#f-&mp$Xv+ z@4kANzBOvZStfeZdG8A=4`U=3AFd^~U3+SHa@`H1>L-~Z@}zxZ01Xn<@aR>CSB&8B z=N`Cu9{zzs--vmR+U0$1+TB@yhpX+<5jIjw`YjXp?2v+*yvfdHb#I%cznfm}DrT3+ z)n=sLtHtFANGpO@-$)A^#Kb|gb!}Df8sz>XNp5b4k_;2a|S~hVaiMTksHUhcqB>q}1;MbdTYr3_<3zrt>y{_6j9zVHG zZdSPJfN;K^v(W6!vF2xbEpiX%I_&R8RtCt+E&FYdI3Bm9yF<N zLk}Sh74plS6IvP%-<+U{6(!h|>4>?>yGu%o@3R=cHs_Sdn4X&4ALYebdUbV@@Kro< za%x6t*zV(xx$dDTH&0LUsOI(;xMp+a#-m^Lnrf83bv-S){i|F}y?J9p%J9aZoG^RM z#uLP!y+K~P(Nv@D{yvPKk_2o1Ru4t9+$XJn_p9B%?WZPP*uG1-`=JwhXcvF z0bb!QE3viz&fe6{H#X zGbZi`B})X&Y}v0fb4inUw#N|4XnxT39sO=x|1B@ofYIn_9dFR#-jn!JO2@n48*daO(ZoIL5oeE|=57dDaPM z6F*alUc%PQ|K@)R%7RlhqaF@)ZzEvH$0tf)#qvoKSzJp5$r zbws$`i|5BEMgH37)RJ>Y%5QUb&z3c-yxIS~v6ab5X>+Ug4nf|NXlFmcmo`<6FBUx$ zPioTj=y|NI!Up6<7F>ut=fBxwGBZu(SrWtMRzT%xqby+T%Ypy?ive$4nxHvVcUupW zS}B=F@}PeLm$GmCJxPnz>?ZuB&xoW_7@^d$2~wdvQfLgiKe7i_!XX3$Q=UcuvKlucFELKN#`d?styAC^3P}YnF=A|i z%m4^m^8uuvZ>Q8^+p&_*H-P|Dd|e8fzOkKBhkEENO_-&{gF+xGW{AGnl>xm6yM<-| z_LdPILF|iwkh9W&z&bbt&RA0P0@7lJf{63&1O|+4q}?r%y8VQV~5>3lAJ2pki-1kU$?BF!Jb9JdUd2f;l))f_iMIDjk&q{TwP_Dlq7 z9>x%dqIgpj(gP3HssZDDz%l@cill%CWHbO379B?M#Y+tfc#$t4j0{9+;1_NN#9$z~ z1ldp)NhulBu_1XJkhWN$T}A%zh++6cXe>r37muwXD9wU-F5wi$e8wWQ4C;hh2?qe- z4OU|rh(2)&76=rvASq)GG;rV=p|_yzCfar=eupucNz?(9l1s2#P zGytMIxr7Z3e>lVt%z#I0V?f(GFpuKJzHsrybKomhAr2*Ej1V9ozQGU)>lWZw*K<`( zS#VS><-Uvj{%+0&xsrWH=XrItPKGFwJ@Czrhz21B|L-n9^6py@C*@1)_7nNa!0-`i|)> zx^7q?YJoy`fvzkD$^ymT1>%3mN(Qwo7~4z8SZZKnEb}SmeZXt&s-*KET?^D91SK2? zPAvv?T!N$_5LE!G)nJ|E7lCv>4_|=Ey+oYkQdUrmR1_u)D7`@V=}yF@m~XM4UMnF7#Ye1KlSRVb zrGuv8I$;d&7tG|V4qn8L0jwGb^Zqc_Avi#=KnUA*BO?7c&^zK&<+&q;sFZ3WKX zyAK`=3h{a1{cW%IzYWe58&UpXQM2h#P1Km8b$M0ZUbex?%KN()QZm$T*TfG>uKQb|m>IrX~N+mii44V~OvckY6`GFlPf_O+$RY&_r6-kN9I!*G1S zO*>+eU|F%)SiOD2VV8JHuanZ}fyV4nl@kqNvKB9ISZsgs+)K5eA>AJ-_PxSgT7Pd- zp73jx#0%mo7x%qO9J8bJw$VLblZRD#_s=P0rCO40eqyucfw!i29L~Wc-VL5(4Xrr+o;Oxe&M1%}o1M zY0ccn|BTAhE){B~o~fDX2(huVa!RtL@1c7N+HP}|ISR(slysz&F=}ebhayZ{4DQM~^2vQEzQ8`&en{?KO%Y_03HRjMira+k5o}9%EZ2DaYq9-rv-NiamHl z)+fA2wT3~p_dv}!lA~R#s~hxK?dvy~_g{pIarRUNhnsGgxZ9L>(X7B) zPv0eOSM#n~MoenvFgKyDfLK5`+A{myIv9SJl3_jB+F_ZyXS_#Vcl+H=SLe?i5&aic zmCmUq%qj2qznn%)W=aQgd2SrU&>NXI%er6cPP$bt4dfnax|2;FfzSSM z-kPD^*XiuladmU9_(@xh$L_)IyuLdlRec+FFr~5-m}t80JJq=<1?}02keg?!hekKW zRVy!TKWhCkATsDm;KWzA1I$GAs*-r&30FnG>i*G*>9_>-scea{=3FGr{{UTI-GzLz zxG~9+9*;NhzHHfQzSy6By7XNx>v7z|5sdEl;}rNY`2l9S9#2HP>4n z*gogsqkC=P+<7l%?dxM4MNt*vYtx?vR%22VYDp}0jRK93JwbP@FQ3s*w@%!v9)H;O z&0jKk!H}+2b0Ct2IPO-N>-^73B#iQ1L;5M{UGS%L6@RO{HN$D?)j#fOTPBB*AJLl{ z|Cw~MUutx43mn!}pNP~3KIwPJBbzu$Y3u!? zxVg7vv)D~@wR`a(GxJ_@WtZYDAFD@)BsQ%xvp#QObjq;3{*!xSSN+AaRjnG& zxl%oXSc@NGrN^NKyMh^>nnnHOUkY7_xw@6o)!koQtEHK(lvrWosUxc67%ty<%)+i> z&*plEEAKt?Th~YCKf1K^SnB3=r|aA5-<=5ACE=E)L2^tu7#-u@65AQWi|HM?RQ=kZ zxc+7_{$@tfrSOy4K3 zbhf&CWrS3HWO;I;5fAVA`V6^9VZRcTnz=!KC^`~t}T1)w5 zYEy0g3DsLBhSW8kIA!f$^E0n2MiR=%8s%dNMV9BFBcG|h*4BcXqiG`2*H0W!P|f2Z zaT2jvcnjU^^>dS-%?s7FRI*1{?|+u}1Et8<1`c}cIdWK7)Va&vALO-teVSD6c=QZF zi+zue-)JviPM%fuNT$dnvjalr-sp-$bGelUmG1+a@srIP4i9OKmhXtp+xB_475}<- z+olfeUyR*QLAdq>15abxN0&ix3h@*aR2@LDx0buSVKimpFeJH^zT&N zY6VuKosWWghS;Xoq2Acqa2nXuSKIEO>$gCmB3coT#%pd*HYOdb^l(O3ox9tEMx zrl8h+U=qM4U$`%tKtAvcMVPh=94yTglp|1eL!#GAP))fM1d<;{UQB_vui2#}d7<_yV zPj!a78i_Zlr}H3@6>w}?z(=xiEUGP!$|hiFE!)8?HVq-zU`OK;MBakTCBigSb{M5? z42N}wS1d#Mq-lXJ$i@Ncsd~s6E3*@}<*j1=0M6b7ao9-u1t}nde?{%Ff(2%#z!yXP z8dgAPJp8%|pfU?LZa50kvD;@3kA^}UJ^-^RfgLspvZ>EO4+2TX0GBbaj13;xkc0RO zlre(Z!J79#342(CopeyCU7)8A8#O`r-S3AezG%JrBcI$uyi=E`S4T*ITKFf;li|3~OcJj}X@k!8v?7fV@Ik1tp+{ z4T-b@@)8VIO-Z-l6>wn87-kksDu?Qg$v=tUMUydJ0aT2FQk009i;1)dbiv`T UTdzOkdaQ_VYno}msjb2NAJp}Y?f?J) literal 0 HcmV?d00001 diff --git a/cmd/restic/testdata/repo-obsolete-index.tar.gz b/cmd/restic/testdata/repo-obsolete-index.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f870b919fe6bfdc8e6a050a24c8f8419fc39b83c GIT binary patch literal 7954 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 literal 0 HcmV?d00001