ts: change approach with version req in cache file magic cookie

Signed-off-by: Xavier Delaruelle <xavier.delaruelle@cea.fr>
This commit is contained in:
Xavier Delaruelle
2025-04-25 19:23:02 +02:00
parent 1d3c4e7860
commit 101475dc1b
7 changed files with 33 additions and 31 deletions

View File

@@ -29,6 +29,8 @@ send_user "\tInitializing the testsuite ...\n"
# Modules release number
set major_minor_rel [join [lrange [split $install_version .] 0 1] .]
set cache_mcookie_version 5.3
# test kind of sh-shell we have
if {[file type /bin/sh] eq {link}} {
set sh_kind [file readlink /bin/sh]
@@ -1191,7 +1193,7 @@ proc create_dummy_cachefile {mp} {
set cachefile $mp/.modulecache
send_user "\tCreating dummy cache file $cachefile\n"
set fid [open $cachefile w]
puts $fid "#%Module$::major_minor_rel"
puts $fid "#%Module$::cache_mcookie_version"
close $fid
}

View File

@@ -49,7 +49,7 @@ file mkdir $mp2
setenv_path_var MODULEPATH $mp1:$mp2
create_dummy_modulefile $mp1modfile
set tserr [msg_create $mp1cache]\n\n[msg_create $mp2cache $warn_cache_nothingtorec]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content foo [file mtime $mp1modfile] #%Module #%Module\n]
testouterrfile_cmd sh cachebuild OK $tserr $mp1cache $tscache
file delete $mp1modfile
@@ -58,7 +58,7 @@ file delete $mp1modfile
create_dummy_modulefile $mp1modfile
create_dummy_cachefile $mp1
set tserr [msg_create $mp1cache]\n\n[msg_create $mp2cache $warn_cache_nothingtorec]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content foo [file mtime $mp1modfile] #%Module #%Module\n]
testouterrfile_cmd sh cachebuild OK $tserr $mp1cache $tscache
file delete $mp1modfile
@@ -73,7 +73,7 @@ close [open $mpfile w]
# silent mode
create_dummy_modulefile $mp1modfile
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content foo [file mtime $mp1modfile] #%Module #%Module\n]
append tscache \n[list modulefile-invalid qux invalid {Magic cookie '#%Module' missing}]
testouterrfile_cmd sh {cachebuild -s} OK {} $mp1cache $tscache
@@ -88,7 +88,7 @@ file delete $mp1cache
create_dummy_modulefile $mp2modfile
setenv_path_var MODULEPATH $mpunk:$mp2
set tserr [msg_create $mpunk/.modulecache "$error_msgs: '$mpunk' is not a directory"]\n\n[msg_create $mp2cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content bar [file mtime $mp2modfile] #%Module #%Module\n]
testouterrfile_cmd sh cachebuild ERR $tserr $mp2cache $tscache
@@ -130,7 +130,7 @@ setenv_path_var MODULEPATH $mp1:$mp2
change_file_perms $mp1 $nowrite_perms
create_dummy_modulefile $mp2modfile
set tserr [msg_create $mp1cache $warn_cache_build_nowritable]\n\n[msg_create $mp2cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content bar [file mtime $mp2modfile] #%Module #%Module\n]
testouterrfile_cmd sh cachebuild OK $tserr $mp2cache $tscache
set tscache [couldnotopen_nofile $mp1cache]
@@ -143,7 +143,7 @@ create_dummy_modulefile $mp1modfile
create_dummy_modulefile $mp2modfile
change_file_perms $mp1 $nowrite_perms
set tserr [msg_create $mp1cache $warn_cache_build_nowritable]\n\n[msg_create $mp2cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content bar [file mtime $mp2modfile] #%Module #%Module\n]
testouterrfile_cmd sh cachebuild OK $tserr $mp2cache $tscache
set tscache [couldnotopen_nofile $mp1cache]
@@ -200,7 +200,7 @@ change_file_perms $mp2cache $nowrite_perms
set tserr [msg_create $mp1cache]\n\n[msg_create $mp2cache [err_couldnotopen_permdenied $mp2cache]]
set tscache [couldnotopen_permdenied $mp1cache]
testouterrfile_cmd sh cachebuild ERR $tserr $mp1cache $tscache
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
testouterrfile_cmd sh cachebuild ERR $tserr $mp2cache $tscache
file delete $mp1modfile
file delete $mp2modfile
@@ -218,7 +218,7 @@ change_file_perms $mp2cache $nowrite_perms
set tserr [msg_create $mp1cache]\n\n[msg_create $mp2cache [err_couldnotopen_permdenied $mp2cache]]
set tscache [couldnotopen_permdenied $mp1cache]
testouterrfile_cmd sh "cachebuild $mp1 $mp2" ERR $tserr $mp1cache $tscache
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
set tserr [msg_create $mp2cache [err_couldnotopen_permdenied $mp2cache]]\n\n[msg_create $mp1cache]
testouterrfile_cmd sh "cachebuild $mp2 $mp1" ERR $tserr $mp2cache $tscache
file delete $mp1modfile
@@ -236,7 +236,7 @@ if {$is_stderr_tty} {
create_dummy_modulefile $mp2modfile
change_file_perms $mp1 $nowrite_perms
set tserr [msg_create $mp1cache [err_couldnotopen_permdenied $mp1cache]]\n\n[msg_create $mp2cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
append tscache \n[list modulefile-content bar [file mtime $mp2modfile] #%Module #%Module\n]
testouterrfile_cmd sh cachebuild ERR $tserr $mp2cache $tscache
set tscache [couldnotopen_nofile $mp1cache]

View File

@@ -34,7 +34,7 @@ lassign [create_diverse_module_setup $mp1] dir_list file_list
array set file_arr $file_list
# expected cache file
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
foreach f [lsort [array names file_arr]] {
set entry {}
switch -- $f {
@@ -143,7 +143,7 @@ setenv_path_var MODULEPATH $mp2:$mp1
# one modulefile not readable
change_file_perms $mp2/bar/1.0 $noread_perms
set tserr [msg_create $mp2cache]\n[msg_create $mp1cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
foreach f [lsort [array names other_file_arr]] {
switch -- $f {
bar/1.0 {
@@ -166,7 +166,7 @@ restore_file_perms $mp2/bar/1.0
# one modulerc not readable
change_file_perms $mp2/foo/.modulerc $noread_perms
set tserr [msg_create $mp2cache]\n[msg_create $mp1cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
foreach f [lsort [array names other_file_arr]] {
set entry {}
switch -- $f {
@@ -192,7 +192,7 @@ restore_file_perms $mp2/foo/.modulerc
# one directory not readable
change_file_perms $mp2/foo $noread_perms
set tserr [msg_create $mp2cache]\n[msg_create $mp1cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
foreach f [lsort [array names other_file_arr]] {
set entry {}
switch -- $f {
@@ -223,7 +223,7 @@ if {$is_stderr_tty} {
# test a modulefile read failure during cache build by faking modulefile is readable
setenv_var TESTSUITE_ENABLE_SITECONFIG_CACHEBUILD_READ1 1
set tserr [msg_create $mp2cache]\n[msg_create $mp1cache]
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
foreach f [lsort [array names other_file_arr]] {
set entry {}
switch -- $f {

View File

@@ -36,7 +36,7 @@ array set file_arr [concat $file_list $other_file_list]
# expected cache file when no limited access
set tscache "#%Module$major_minor_rel"
set tscache "#%Module$cache_mcookie_version"
foreach f [lsort [array names file_arr]] {
set entry {}
switch -- $f {
@@ -105,7 +105,7 @@ change_file_perms $mp1/quxc/1.0~ $no_arx_perms
change_file_perms $mp1/.svn $no_arx_perms
change_file_perms $mp1/.sos/ignmod $no_arx_perms
set tscache1 "#%Module$major_minor_rel"
set tscache1 "#%Module$cache_mcookie_version"
foreach f [lsort [concat [array names file_arr] [list foo quux/oth empty anotherempty]]] {
set entry {}
switch -glob -- $f {
@@ -157,7 +157,7 @@ change_file_perms $mp1/.version $no_ar_perms
change_file_perms $mp1/foo/1.0 $no_ar_perms
change_file_perms $mp1/foo/.modulerc $no_arx_perms
set tscache2 "#%Module$major_minor_rel"
set tscache2 "#%Module$cache_mcookie_version"
foreach f [lsort [concat [array names file_arr] [list quux empty anotherempty]]] {
set entry {}
switch -glob -- $f {
@@ -297,7 +297,7 @@ change_file_perms $mp1/quxc/1.0~ $no_arx_perms
change_file_perms $mp1/.svn $no_arx_perms
change_file_perms $mp1/.sos/ignmod $no_arx_perms
set tscachewin1 "#%Module$major_minor_rel"
set tscachewin1 "#%Module$cache_mcookie_version"
foreach f [lsort [concat [array names file_arr] [list foo empty anotherempty]]] {
set entry {}
switch -glob -- $f {
@@ -363,7 +363,7 @@ change_file_perms $mp1/quxc/1.0~ $no_orx_perms
change_file_perms $mp1/.svn $no_orx_perms
change_file_perms $mp1/.sos/ignmod $no_orx_perms
set tscachewin2 "#%Module$major_minor_rel"
set tscachewin2 "#%Module$cache_mcookie_version"
foreach f [lsort [array names file_arr]] {
set entry {}
switch -- $f {

View File

@@ -147,7 +147,7 @@ file delete $mp1cache
# tests with a cache containing only few elements
set fid [open $mp1cache w]
puts $fid "#%Module$::major_minor_rel
puts $fid "#%Module$::cache_mcookie_version
modulefile-content bar/1.0 1664035017 #%Module #%Module"
close $fid
testouterr_cmd sh {avail -a -t -o } OK bar/1.0
@@ -228,7 +228,7 @@ file delete $mp1cache
# tests with a cache containing element that does not exists anymore in modulepath
set fid [open $mp1cache w]
puts $fid "#%Module$::major_minor_rel
puts $fid "#%Module$::cache_mcookie_version
modulefile-content bar/5.0 1664035017 #%Module #%Module"
close $fid
testouterr_cmd sh {avail -a -t -o } OK bar/5.0

View File

@@ -33,7 +33,7 @@ array set other_file_arr $other_file_list
# create cache file for mp1 that supersedes command definition
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
modulefile-content foo/1.0 {} {#%Module} {#%Module}
modulerc-content foo/.modulerc {#%Module} {#%Module}
proc modulefile-content {args} {}
@@ -57,12 +57,12 @@ testouterr_cmd sh {avail -t} OK $tserr
# test local variables and procedures are not propagated to the next evaluation
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
proc foo {args} {}
set bar val"
close $fid
set fid [open $mp2cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
if {\[llength \[info procs foo\]\]} {
modulefile-content foo/1.0 {} {#%Module} {#%Module}
}
@@ -77,7 +77,7 @@ testouterr_cmd sh {avail -t} OK {}
# test a cachefile overriding basic Tcl command
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
proc set {args} {}"
close $fid
set tserr [msg_create $mp2cache]

View File

@@ -39,7 +39,7 @@ setenv_var MODULEPATH $mp1
# cache with an unknown command
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
modulefile-content foo/1.0 1000000000 #%Module {#%Module
module-whatis foo/1.0
setenv FOO 1}
@@ -83,7 +83,7 @@ testouterr_cmd sh {load bar/2.0} $ans_load2 $cacheerr
# cache with a command with bad args
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
modulefile-content foo/1.0 1000000000 #%Module {#%Module
module-whatis foo/1.0
setenv FOO 1}
@@ -109,7 +109,7 @@ testouterr_cmd sh {load bar/2.0} $ans_load2 $cacheerr
# cache with unbalanced curly brace
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
modulefile-content foo/1.0 1000000000 #%Module {#%Module
module-whatis foo/1.0
setenv FOO 1}
@@ -135,7 +135,7 @@ testouterr_cmd_re sh {load bar/2.0} $ans_load2 $cacheerr
# cache with unbalanced quote
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
modulefile-content foo/1.0 1000000000 #%Module {#%Module
module-whatis foo/1.0
setenv FOO 1}
@@ -162,7 +162,7 @@ testouterr_cmd_re sh {load bar/2.0} $ans_load2 $cacheerr
# duplicate modulefile and modulerc entries
set fid [open $mp1cache w]
puts $fid "#%Module$major_minor_rel
puts $fid "#%Module$cache_mcookie_version
modulefile-content foo/1.0 1000000000 #%Module {#%Module
module-whatis foo/1.0
setenv FOO 1}