@@ -905,24 +905,34 @@ func runCompactionTest(
905
905
rng := rand .New (rand .NewPCG (0 , seed ))
906
906
t .Logf ("seed: %d" , seed )
907
907
908
+ var dbLog base.InMemLogger
909
+ defer func () {
910
+ if t .Failed () {
911
+ t .Logf ("db log:\n %s\n " , dbLog .String ())
912
+ }
913
+ }()
908
914
var compactionLog bytes.Buffer
909
- compactionLogEventListener := & EventListener {
910
- CompactionEnd : func (info CompactionInfo ) {
911
- // Ensure determinism.
912
- info .JobID = 1
913
- info .Duration = time .Second
914
- info .TotalDuration = time .Second
915
- fmt .Fprintln (& compactionLog , info .String ())
915
+ eventListener := TeeEventListener (
916
+ MakeLoggingEventListener (& dbLog ),
917
+ EventListener {
918
+ CompactionEnd : func (info CompactionInfo ) {
919
+ // Ensure determinism.
920
+ info .JobID = 1
921
+ info .Duration = time .Second
922
+ info .TotalDuration = time .Second
923
+ fmt .Fprintln (& compactionLog , info .String ())
924
+ },
916
925
},
917
- }
926
+ )
927
+
918
928
concurrencyLow , concurrencyHigh := 1 , 1
919
929
mkOpts := func () * Options {
920
930
randVersion := FormatMajorVersion (int (minVersion ) + rng .IntN (int (maxVersion )- int (minVersion )+ 1 ))
921
931
opts := & Options {
922
932
FS : vfs .NewMem (),
923
933
DebugCheck : DebugCheckLevels ,
924
934
DisableAutomaticCompactions : true ,
925
- EventListener : compactionLogEventListener ,
935
+ EventListener : & eventListener ,
926
936
FormatMajorVersion : randVersion ,
927
937
Logger : testutils.Logger {T : t },
928
938
Comparer : cmp ,
@@ -941,6 +951,7 @@ func runCompactionTest(
941
951
require .NoError (t , closeAllSnapshots (d ))
942
952
require .NoError (t , d .Close ())
943
953
}
954
+ dbLog .Reset ()
944
955
compactionLog .Reset ()
945
956
concurrencyLow , concurrencyHigh = 1 , 1
946
957
var err error
@@ -1009,7 +1020,7 @@ func runCompactionTest(
1009
1020
return ""
1010
1021
1011
1022
case "compact" :
1012
- if err := runCompactCmd (td , d ); err != nil {
1023
+ if err := runCompactCmd (t , td , d ); err != nil {
1013
1024
return err .Error ()
1014
1025
}
1015
1026
s := describeLSM (d , verbose )
@@ -1029,6 +1040,8 @@ func runCompactionTest(
1029
1040
require .NoError (t , d .Close ())
1030
1041
}
1031
1042
1043
+ dbLog .Reset ()
1044
+ compactionLog .Reset ()
1032
1045
var err error
1033
1046
if d , err = runDBDefineCmd (td , mkOpts ()); err != nil {
1034
1047
return err .Error ()
@@ -1212,7 +1225,7 @@ func runCompactionTest(
1212
1225
var s string
1213
1226
ch := make (chan error , 1 )
1214
1227
go func () {
1215
- if err := runCompactCmd (td , d ); err != nil {
1228
+ if err := runCompactCmd (t , td , d ); err != nil {
1216
1229
ch <- err
1217
1230
close (ch )
1218
1231
return
@@ -1276,12 +1289,10 @@ func runCompactionTest(
1276
1289
td .ScanArgs (t , "num-blocked" , & numBlocked )
1277
1290
var cancelFunc atomic.Pointer [context.CancelFunc ]
1278
1291
go func () {
1279
- compactFunc , cf , err := runCompactCmdAsync (td , d , true )
1280
- if err == nil {
1281
- cancelFunc .Store (& cf )
1282
- err = compactFunc ()
1283
- }
1284
- if err != nil {
1292
+ ctx , cf := context .WithCancel (context .Background ())
1293
+ compactFunc := runCompactCmdFn (ctx , t , td , d )
1294
+ cancelFunc .Store (& cf )
1295
+ if err := compactFunc (); err != nil {
1285
1296
ch <- err
1286
1297
close (ch )
1287
1298
return
@@ -1769,7 +1780,7 @@ func TestCompactionDeleteOnlyHints(t *testing.T) {
1769
1780
return buf .String ()
1770
1781
1771
1782
case "compact" :
1772
- if err := runCompactCmd (td , d ); err != nil {
1783
+ if err := runCompactCmd (t , td , d ); err != nil {
1773
1784
return err .Error ()
1774
1785
}
1775
1786
d .mu .Lock ()
0 commit comments