@@ -2,6 +2,7 @@ package embeddedpostgres
22
33import (
44 "archive/tar"
5+ "bytes"
56 "errors"
67 "fmt"
78 "io"
@@ -28,7 +29,7 @@ func Test_decompressTarXz(t *testing.T) {
2829 archive , cleanUp := createTempXzArchive ()
2930 defer cleanUp ()
3031
31- err = decompressTarXz (defaultTarReader , archive , tempDir )
32+ err = decompressTarXz (defaultTarReader , archive , tempDir , nil )
3233
3334 assert .NoError (t , err )
3435
@@ -42,7 +43,7 @@ func Test_decompressTarXz(t *testing.T) {
4243}
4344
4445func Test_decompressTarXz_ErrorWhenFileNotExists (t * testing.T ) {
45- err := decompressTarXz (defaultTarReader , "/does-not-exist" , "/also-fake" )
46+ err := decompressTarXz (defaultTarReader , "/does-not-exist" , "/also-fake" , nil )
4647
4748 assert .Error (t , err )
4849 assert .Contains (
@@ -68,7 +69,7 @@ func Test_decompressTarXz_ErrorWhenErrorDuringRead(t *testing.T) {
6869 return func () (* tar.Header , error ) {
6970 return nil , errors .New ("oh noes" )
7071 }, nil
71- }, archive , tempDir )
72+ }, archive , tempDir , nil )
7273
7374 assert .EqualError (t , err , "unable to extract postgres archive: oh noes" )
7475}
@@ -108,7 +109,7 @@ func Test_decompressTarXz_ErrorWhenFailedToReadFileToCopy(t *testing.T) {
108109 }
109110 }
110111
111- err = decompressTarXz (fileBlockingExtractTarReader , archive , tempDir )
112+ err = decompressTarXz (fileBlockingExtractTarReader , archive , tempDir , nil )
112113
113114 assert .Regexp (t , "^unable to extract postgres archive:.+$" , err )
114115}
@@ -145,7 +146,7 @@ func Test_decompressTarXz_ErrorWhenFileToCopyToNotExists(t *testing.T) {
145146 }
146147 }
147148
148- err = decompressTarXz (fileBlockingExtractTarReader , archive , tempDir )
149+ err = decompressTarXz (fileBlockingExtractTarReader , archive , tempDir , nil )
149150
150151 assert .Regexp (t , "^unable to extract postgres archive:.+$" , err )
151152}
@@ -180,7 +181,7 @@ func Test_decompressTarXz_ErrorWhenArchiveCorrupted(t *testing.T) {
180181 panic (err )
181182 }
182183
183- err = decompressTarXz (defaultTarReader , archive , tempDir )
184+ err = decompressTarXz (defaultTarReader , archive , tempDir , nil )
184185
185186 assert .EqualError (t , err , "unable to extract postgres archive: xz: data is corrupt" )
186187}
@@ -197,10 +198,26 @@ func Test_decompressTarXz_ErrorWithInvalidDestination(t *testing.T) {
197198
198199 op := fmt .Sprintf (path .Join (tempDir , "%c" ), rune (0 ))
199200
200- err = decompressTarXz (defaultTarReader , archive , op )
201+ err = decompressTarXz (defaultTarReader , archive , op , nil )
201202 assert .EqualError (
202203 t ,
203204 err ,
204205 fmt .Sprintf ("unable to extract postgres archive: mkdir %s: invalid argument" , op ),
205206 )
206207}
208+
209+ func Test_decompressTarXz_LogsExtractedEntries (t * testing.T ) {
210+ tempDir := t .TempDir ()
211+ archive , cleanUp := createTempXzArchive ()
212+ defer cleanUp ()
213+
214+ var logs bytes.Buffer
215+ err := decompressTarXz (defaultTarReader , archive , tempDir , func (format string , args ... any ) {
216+ _ , _ = fmt .Fprintf (& logs , format + "\n " , args ... )
217+ })
218+
219+ require .NoError (t , err )
220+ assert .Contains (t , logs .String (), "extracting embedded postgres entry" )
221+ assert .Contains (t , logs .String (), "entry=dir1/dir2/some_content" )
222+ assert .Contains (t , logs .String (), "finished extracting embedded postgres archive" )
223+ }
0 commit comments