#!/bin/csh -f
#
# makecanon - make canonical test set
#    for regression testing of code

# need to represent:
# exact
# local
# global
# chunks
# limit
# ndisks
# procs
# write
# switch (can't, needs recompilation)
# disktime (can't, needs recompilation)
# for-others (can't needs recompilation)
# 

source ~/rf/run/test/defaults

set testfile=canon
echo > $testfile

set Ntrials=5

echo \# Canonical set of tests >> $testfile
echo \# for regression testing of code >> $testfile

#####################
# Basic tests (exact)

# NONE predictor
set Predictor=("none 0")
foreach pat (gw gpr gps lpr lps lw rnd seg)
	set Pattern=pat/${pat}20
	set Directory=data/basic/$pat

	source ~/rf/run/test/body  # Make one test file input line
end

# EXACT predictor
set Predictor=("exact 0")
foreach pat (gw gpr gps lpr lps lw seg)
	set Pattern=pat/${pat}20
	set Directory=data/basic/$pat

	source ~/rf/run/test/body  # Make one test file input line
end

# Comp test
set Pattern=pat/gw20.comp
set Directory=data/basic/gw-comp
set Predictor="exact 0"
source ~/rf/run/test/body  # Make one test file input line
set Predictor="none 0"
source ~/rf/run/test/body  # Make one test file input line

################################
# Predictor tests (local,global)

set Pattern=pat/gpr20
set Directory=data/basic/gpr
foreach Predictor ("gaps 0" "rgaps 0")
	source ~/rf/run/test/body  # Make one test file input line
end

set Pattern=pat/gw20
set Directory=data/basic/gw
foreach Predictor ("gw 0")
	source ~/rf/run/test/body  # Make one test file input line
end

set Pattern=pat/lpr20
set Directory=data/basic/lpr
foreach Predictor ("obl 0" "ibl 0" "iobl 0" "adapt 5"\
    "port 5" "iport 5" "ioport 5")
	source ~/rf/run/test/body  # Make one test file input line
end
set Predictor="exact 0"

################################
# record-size variation (chunks)
set dir=data/chunks/gw
foreach cs (0.25 1.6 4 6.52)
	set Pattern=pat/chunks/gw/$cs
	set Directory=$dir/gw-$cs
	foreach Predictor ("none 0" "exact 0" "rgaps 0")
		source ~/rf/run/test/body  # Make one test file input line
	end
end
unset cs

##########################
# prefetch-limit variation
# skipped

###########################
# number-of-disks variation
set Pattern=pat/gw20
set Directory=data/ndisks/gw
foreach ndisks (10 40)
	source ~/rf/run/test/body  # Make one test file input line
end
set ndisks=20

###########################
# number-of-procs variation
# skipped

########################################
# switch (skipped; needs recompilation)

########################################
# disktime (skipped; needs recompilation)

########################################
# for-others (skipped; needs recompilation)

###############
# writes: basic

set Prefetch=w
set NumFrames=80

foreach pat (gw seg lw1)
    set Pattern=pat/write/${pat}20
    set Directory=data/write/basic/$pat
    
    foreach WriteAlg(wback wthru wfull wleave)
    	source ~/rf/run/test/body # Make one test file line
    end
end

#################
# writes: buffers
set pat=gw
set Pattern=pat/write/${pat}20
set Directory=data/write/buffers/$pat
set WriteAlg=wback
foreach NumFrames (40 160)
    	source ~/rf/run/test/body # Make one test file line
end
set NumFrames=60


################
# writes: chunks

set dir=data/write/chunks/gw
foreach cs (0.25 1.6 4 6.52)
	set Pattern=pat/chunks/gw/w$cs
	set Directory=$dir/gw-$cs
        foreach WriteAlg(wback wthru wfull)
		source ~/rf/run/test/body  # Make one test file input line
	end
end
