From 41a34eee023fe098041a0bbcbb29fef4d215431c Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Tue, 9 Dec 2008 12:52:47 +0000 Subject: [PATCH] ebl tweak regress scripts to be able to change binary location git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/branches/Branch-2.4@8125 91ce42f0-d328-0410-95d8-f526ca767f89 --- regress/scripts/check_for_zombie_jobs | 2 +- regress/scripts/cleanup-2drive.in | 20 ++++++++-------- regress/scripts/cleanup-tape.in | 8 +++---- regress/scripts/functions | 28 ++++++++++++++-------- regress/scripts/prepare-other-loc | 14 +++++++++++ regress/scripts/prepare-two-tapes.in | 16 ++++++------- regress/scripts/setup | 3 ++- regress/tests/bextract-test | 4 ++-- regress/tests/bscan-fast-tape | 4 ++-- regress/tests/bscan-tape | 4 ++-- regress/tests/bscan-test | 4 ++-- regress/tests/btape-fill-full-tape | 4 ++-- regress/tests/bug-fatal-test | 9 ++++--- regress/tests/errors-test | 6 +---- regress/tests/four-jobs-tape | 34 +++++---------------------- regress/tests/incremental-2disk | 8 +------ regress/tests/lib-tape-root | 13 ++++------ regress/tests/restore-by-file-tape | 2 +- regress/tests/usr-tape-root | 7 +++--- 19 files changed, 88 insertions(+), 102 deletions(-) create mode 100755 regress/scripts/prepare-other-loc diff --git a/regress/scripts/check_for_zombie_jobs b/regress/scripts/check_for_zombie_jobs index d35a5ffc37..c4736d9e1d 100755 --- a/regress/scripts/check_for_zombie_jobs +++ b/regress/scripts/check_for_zombie_jobs @@ -12,7 +12,7 @@ else client="client" fi -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +$bin/bconsole -c bin/bconsole.conf <&1 >/dev/null @output tmp/dir.out status dir @output tmp/fd.out diff --git a/regress/scripts/cleanup-2drive.in b/regress/scripts/cleanup-2drive.in index 2e485e82a9..198447cf2a 100755 --- a/regress/scripts/cleanup-2drive.in +++ b/regress/scripts/cleanup-2drive.in @@ -5,40 +5,40 @@ scripts/cleanup if test x@autochanger@ != x/dev/null; then - slot=`bin/@changer_script@ @autochanger@ loaded 0 @tape_drive1@ 1` + slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive1@ 1` echo "Slot $slot in drive 1" if test x$slot != x0 ; then echo "unload slot $slot in drive 1" - bin/@changer_script@ @autochanger@ unload $slot @tape_drive1@ 1 + $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive1@ 1 fi - slot=`bin/@changer_script@ @autochanger@ loaded 0 @tape_drive@ 0` + slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive@ 0` echo "Slot $slot in drive 0" if test x$slot != x0 ; then echo "unload slot $slot in drive 0" - bin/@changer_script@ @autochanger@ unload $slot @tape_drive@ 0 + $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ 0 fi - slot=`bin/@changer_script@ @autochanger@ loaded 0 @tape_drive1@ 1` + slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive1@ 1` if test x$slot != x2; then echo "load slot 2 in drive 1" - bin/@changer_script@ @autochanger@ load 2 @tape_drive1@ 1 + $scripts/@changer_script@ @autochanger@ load 2 @tape_drive1@ 1 fi echo "WEOF drive 1" init_drive @tape_drive1@ echo "unload slot 2 in drive 1" - bin/@changer_script@ @autochanger@ unload 2 @tape_drive1@ 1 + $scripts/@changer_script@ @autochanger@ unload 2 @tape_drive1@ 1 - slot=`bin/@changer_script@ @autochanger@ loaded 0 @tape_drive@ 0` + slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive@ 0` echo "Slot $slot in drive 0" if test x$slot != x1; then echo "load slot 1 in drive 0" - bin/@changer_script@ @autochanger@ load 1 @tape_drive@ 0 + $scripts/@changer_script@ @autochanger@ load 1 @tape_drive@ 0 fi echo "WEOF drive 0" init_drive @tape_drive@ echo "unload slot 1 from drive 0" - bin/@changer_script@ @autochanger@ unload 1 @tape_drive@ 0 + $scripts/@changer_script@ @autochanger@ unload 1 @tape_drive@ 0 fi diff --git a/regress/scripts/cleanup-tape.in b/regress/scripts/cleanup-tape.in index 936540289d..0daef096fb 100755 --- a/regress/scripts/cleanup-tape.in +++ b/regress/scripts/cleanup-tape.in @@ -9,16 +9,16 @@ scripts/cleanup if test x@autochanger@ != x/dev/null; then - slot=`bin/@changer_script@ @autochanger@ loaded 0 @tape_drive@ $DRIVE1` + slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive@ $DRIVE1` case $slot in 0) - bin/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 ;; $SLOT1) ;; default) - bin/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 - bin/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 ;; esac fi diff --git a/regress/scripts/functions b/regress/scripts/functions index 551eb75a20..732952cc95 100644 --- a/regress/scripts/functions +++ b/regress/scripts/functions @@ -10,11 +10,11 @@ start_test() echo "s% mail =%# mail = %g" >${outf} echo "s% operator =%# operator =%g" >>${outf} cp bin/bacula-dir.conf tmp/1 - sed -f ${outf} tmp/1 >bin/bacula-dir.conf + sed -f ${outf} tmp/1 > bin/bacula-dir.conf echo " " echo " " echo " === Starting $TestName at `date +%R:%S` ===" - echo " === Starting $TestName at `date +%R:%S` ===" >>working/log + echo " === Starting $TestName at `date +%R:%S` ===" >> working/log echo " " export zstat } @@ -108,13 +108,13 @@ run_bacula() ./bacula-ctl-fd start ./bacula-ctl-dir start cd .. - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf + cat tmp/bconcmds | $bin/bconsole -c bin/bconsole.conf return $? else cd bin ./bacula start 2>&1 >/dev/null cd .. - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null + cat tmp/bconcmds | $bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null return $? fi } @@ -122,27 +122,27 @@ run_bacula() run_bconsole() { if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf + cat tmp/bconcmds | $bin/bconsole -c bin/bconsole.conf else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null + cat tmp/bconcmds | $bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null fi } run_btape() { if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/btape -c bin/bacula-sd.conf DDS-4 | tee tmp/log1.out + cat tmp/bconcmds | $bin/btape -c bin/bacula-sd.conf DDS-4 | tee tmp/log1.out else - cat tmp/bconcmds | bin/btape -c bin/bacula-sd.conf DDS-4 2>&1 >tmp/log1.out + cat tmp/bconcmds | $bin/btape -c bin/bacula-sd.conf DDS-4 >tmp/log1.out 2>&1 fi } run_bscan() { if test "$debug" -eq 1 ; then - bin/bscan $* | tee tmp/log.out + $bin/bscan $* | tee tmp/log.out else - bin/bscan $* 2>&1 >/dev/null + $bin/bscan $* 2>&1 >/dev/null fi } @@ -308,6 +308,14 @@ fi # Source the configuration variables . ${cwd}/config +working=${working:-"$cwd/working"} +bin=${bin:-"$cwd/bin"} +scripts=${scripts:-"$bin"} + +export bin +export working +export scripts + db_name=${db_name:-"regress"} db_user=${db_user:-"regress"} db_password=${db_password:-""} diff --git a/regress/scripts/prepare-other-loc b/regress/scripts/prepare-other-loc new file mode 100755 index 0000000000..fddd355e93 --- /dev/null +++ b/regress/scripts/prepare-other-loc @@ -0,0 +1,14 @@ +#!/bin/sh + +. scripts/functions + +SCR=$cwd/bin/bacula-ctl +sed "s:BACDIRBIN=$cwd/bin:BACDIRBIN=$bin:" $SCR-dir > tmp/1 +mv tmp/1 $SCR-dir +sed "s:BACSDBIN=$cwd/bin:BACSDBIN=$bin:" $SCR-sd > tmp/1 +mv tmp/1 $SCR-sd +sed "s:BACFDBIN=$cwd/bin:BACFDBIN=$bin:" $SCR-fd > tmp/1 +mv tmp/1 $SCR-fd +chmod -x $cwd/bin/bacula-fd $cwd/bin/bacula-sd $cwd/bin/bacula-dir $cwd/bin/bconsole +chmod +x $SCR-* + diff --git a/regress/scripts/prepare-two-tapes.in b/regress/scripts/prepare-two-tapes.in index a5d077025f..535de91c19 100755 --- a/regress/scripts/prepare-two-tapes.in +++ b/regress/scripts/prepare-two-tapes.in @@ -13,10 +13,10 @@ scripts/cleanup # optimize so we don't unnecessarily unload and load slots # if test x@autochanger@ != x/dev/null; then - slot=`bin/@changer_script@ @autochanger@ loaded 0 @tape_drive@ $DRIVE1` + slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive@ $DRIVE1` case $slot in 0) - bin/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 init_drive @tape_drive@ slot=$SLOT1 ;; @@ -29,8 +29,8 @@ if test x@autochanger@ != x/dev/null; then slot=$SLOT2 ;; *) - bin/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 - bin/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 init_drive @tape_drive@ slot=$SLOT1 ;; @@ -39,13 +39,13 @@ if test x@autochanger@ != x/dev/null; then # init the other slot case $slot in $SLOT1) - bin/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 - bin/@changer_script@ @autochanger@ load $SLOT2 @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ load $SLOT2 @tape_drive@ $DRIVE1 init_drive @tape_drive@ ;; $SLOT2) - bin/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 - bin/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1 + $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1 init_drive @tape_drive@ ;; esac diff --git a/regress/scripts/setup b/regress/scripts/setup index e452fa1f01..cf9ddee90b 100755 --- a/regress/scripts/setup +++ b/regress/scripts/setup @@ -19,6 +19,7 @@ if [ ! -d ${BACULA_SOURCE} ] ; then echo " " exit 1 fi +# we build and setup binaries to the $cwd/bin directory not $bin rm -rf build bin # Copy new source echo "Copying source from ${BACULA_SOURCE}" @@ -33,7 +34,7 @@ check_exit_code cd src/win32 make clean cd ../.. -make +make -j4 check_exit_code make install check_exit_code diff --git a/regress/tests/bextract-test b/regress/tests/bextract-test index 0446bf7a7f..32dafd3b30 100755 --- a/regress/tests/bextract-test +++ b/regress/tests/bextract-test @@ -45,9 +45,9 @@ stop_bacula mkdir -p ${cwd}/tmp/bacula-restores if test "$debug" -eq 1 ; then - bin/bextract -v -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores + $bin/bextract -v -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores else - bin/bextract -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores 2>&1 >/dev/null + $bin/bextract -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores 2>&1 >/dev/null fi rstat=$? grep "^ Termination: *Backup OK" ${cwd}/tmp/log1.out 2>&1 >/dev/null diff --git a/regress/tests/bscan-fast-tape b/regress/tests/bscan-fast-tape index 110c007f7d..b61c663f8c 100755 --- a/regress/tests/bscan-fast-tape +++ b/regress/tests/bscan-fast-tape @@ -34,7 +34,7 @@ quit END_OF_DATA echo "Starting Bacula tape writing" -#bin/btape -c bin/bacula-sd.conf /dev/nst0 <tmp/bscan.bsr -strace -o strace.new bin/bscan -d200 -w working -u regress -n regress -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 +strace -o strace.new $bin/bscan -d200 -w working -u regress -n regress -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 exit cat <tmp/bconcmds @$out /dev/null diff --git a/regress/tests/bscan-tape b/regress/tests/bscan-tape index c2599713ea..bc747c2e0c 100755 --- a/regress/tests/bscan-tape +++ b/regress/tests/bscan-tape @@ -104,9 +104,9 @@ else fi if test "$debug" -eq 1 ; then - bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 + $bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 else - bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 2>&1 >/dev/null + $bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 2>&1 >/dev/null fi cat <tmp/bconcmds diff --git a/regress/tests/bscan-test b/regress/tests/bscan-test index ee629ecf17..c5e9f0499c 100755 --- a/regress/tests/bscan-test +++ b/regress/tests/bscan-test @@ -65,9 +65,9 @@ else fi if test "$debug" -eq 1 ; then - bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp + $bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp else - bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp 2>&1 >tmp/log3.out + $bin/bscan -w working -u ${db_user} -n ${db_name} $PASSWD -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp 2>&1 >tmp/log3.out fi cat <tmp/bconcmds diff --git a/regress/tests/btape-fill-full-tape b/regress/tests/btape-fill-full-tape index dc3fcec98c..6c34094ab8 100755 --- a/regress/tests/btape-fill-full-tape +++ b/regress/tests/btape-fill-full-tape @@ -14,7 +14,7 @@ scripts/cleanup-tape change_jobname $JobName start_test -bin/btape -c bin/bacula-sd.conf DDS-4 <&1 >${cwd}/tmp/log1.out +$bin/btape -c bin/bacula-sd.conf DDS-4 <${cwd}/tmp/log1.out 2>&1 fill s @@ -22,7 +22,7 @@ quit END_OF_DATA -grep "^The last block on the tape matches\. Test succeeded\." ${cwd}/tmp/log1.out 2>&1 >/dev/null +grep "^The last block on the tape matches\. Test succeeded\." ${cwd}/tmp/log1.out >/dev/null 2>&1 if [ $? != 0 ] ; then echo " " echo " " diff --git a/regress/tests/bug-fatal-test b/regress/tests/bug-fatal-test index 249858d6fb..592fc4f5ce 100755 --- a/regress/tests/bug-fatal-test +++ b/regress/tests/bug-fatal-test @@ -34,12 +34,11 @@ quit END_OF_DATA -bin/bacula start -cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf > /dev/null +run_baculabin/bacula start stop_bacula -export dstat=0 -export bstat=0 -export rstat=0 +dstat=0 +bstat=0 +rstat=0 end_test diff --git a/regress/tests/errors-test b/regress/tests/errors-test index 5bd40fcb49..e9469079d3 100755 --- a/regress/tests/errors-test +++ b/regress/tests/errors-test @@ -64,16 +64,12 @@ END_OF_DATA run_bacula touch ${cwd}/tmp/log1.out -client=$(grep client= bin/bacula-dir.conf) +client=`grep client= bin/bacula-dir.conf` check_for_zombie_jobs storage=File $client stop_bacula dstat=0 bstat=0 rstat=0 -export dstat -export bstat -export rstat - end_test diff --git a/regress/tests/four-jobs-tape b/regress/tests/four-jobs-tape index ff579c09a0..3631072be7 100755 --- a/regress/tests/four-jobs-tape +++ b/regress/tests/four-jobs-tape @@ -30,13 +30,8 @@ wait messages quit END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi + +run_bacula scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 1 done" @@ -56,13 +51,8 @@ wait messages quit END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi + +run_bacula scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 2 done" @@ -80,13 +70,7 @@ wait messages quit END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi +run_bacula scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 3 done" @@ -104,13 +88,7 @@ wait messages quit END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat ${cwd}/tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi +run_bacula scripts/check_for_zombie_jobs storage=DDS-4 echo "Backup 4 done" diff --git a/regress/tests/incremental-2disk b/regress/tests/incremental-2disk index 63098bcd9b..b5479386ca 100755 --- a/regress/tests/incremental-2disk +++ b/regress/tests/incremental-2disk @@ -10,13 +10,7 @@ JobName=Inc2disk . scripts/functions -stop_bacula -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - +scripts/cleanup scripts/copy-2disk-confs scripts/prepare-two-disks diff --git a/regress/tests/lib-tape-root b/regress/tests/lib-tape-root index b02c15284f..df703b7211 100755 --- a/regress/tests/lib-tape-root +++ b/regress/tests/lib-tape-root @@ -5,13 +5,7 @@ # cwd=`pwd` . scripts/functions -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - +scripts/cleanup scripts/cleanup-tape scripts/copy-tape-confs echo "/lib" >${cwd}/tmp/file-list @@ -20,7 +14,7 @@ echo " " echo " === Starting lib-tape-root test ===" echo " " echo " " -bin/bacula start 2>&1 >/dev/null + bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +run_bacula +stop_bacula cd / ${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original cd ${cwd}/tmp/bacula-restores diff --git a/regress/tests/restore-by-file-tape b/regress/tests/restore-by-file-tape index fefc274ac8..060a43e73a 100755 --- a/regress/tests/restore-by-file-tape +++ b/regress/tests/restore-by-file-tape @@ -93,7 +93,7 @@ stop_bacula check_two_logs scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null +stop_bacula for i in `cat ${cwd}/tmp/restore2-list`; do diff $i ${cwd}/tmp/bacula-restores$i if [ $? != 0 ] ; then diff --git a/regress/tests/usr-tape-root b/regress/tests/usr-tape-root index dbc0ed9daf..5551768de2 100755 --- a/regress/tests/usr-tape-root +++ b/regress/tests/usr-tape-root @@ -15,8 +15,7 @@ echo " === Starting usr-tape-root test ===" echo " " echo " " -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf < ${cwd}/tmp/bconcmds @output /dev/null messages @output tmp/log1.out @@ -35,7 +34,9 @@ messages @output quit END_OF_DATA -bin/bacula stop 2>&1 >/dev/null +run_bacula +stop_bacula + cd / ${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original cd ${cwd}/tmp/bacula-restores -- 2.39.2