fix unit tests
This commit is contained in:
parent
3bd01271d0
commit
35af367d62
|
@ -8,3 +8,4 @@
|
|||
/state/
|
||||
/merlin
|
||||
/merlin.sock
|
||||
/test_tmp
|
||||
|
|
|
@ -9,8 +9,13 @@ import (
|
|||
|
||||
"git.csclub.uwaterloo.ca/public/merlin/config"
|
||||
"git.csclub.uwaterloo.ca/public/merlin/logger"
|
||||
"git.csclub.uwaterloo.ca/public/merlin/test_utils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
os.Chdir("..")
|
||||
}
|
||||
|
||||
// Test that GetCommand is able to accept a connection and parse a request for the status
|
||||
func TestStatusCommand(t *testing.T) {
|
||||
r, w := net.Pipe()
|
||||
|
@ -87,11 +92,12 @@ func TestSendStatus(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Errorf(err.Error())
|
||||
}
|
||||
expected := `Repository Last Synced Next Expected Sync Running
|
||||
alinux Sun, 02 May 2021 20:00:00 EDT Sun, 09 May 2021 20:00:03 EDT true
|
||||
eeeee Sun, 13 Sep 2020 08:26:40 EDT Tue, 13 Oct 2020 08:26:40 EDT true
|
||||
lnux Mon, 20 Dec 2021 06:33:20 EST Tue, 21 Dec 2021 06:33:20 EST false
|
||||
`
|
||||
expected := (`
|
||||
Repository Last Synced Next Expected Sync Last Exit Running
|
||||
alinux Sun, 02 May 2021 20:00:00 EDT Sun, 09 May 2021 20:00:03 EDT completed true
|
||||
eeeee Sun, 13 Sep 2020 08:26:40 EDT Tue, 13 Oct 2020 08:26:40 EDT completed true
|
||||
lnux Mon, 20 Dec 2021 06:33:20 EST Tue, 21 Dec 2021 06:33:20 EST completed false
|
||||
`)[1:]
|
||||
if expected != string(msg) {
|
||||
t.Errorf("Expected:\n" + expected + "\nGot:\n" + string(msg))
|
||||
}
|
||||
|
@ -99,6 +105,9 @@ lnux Mon, 20 Dec 2021 06:33:20 EST Tue, 21 Dec 2021 06:33:20 EST
|
|||
|
||||
// Test that ForceSync behaves properly
|
||||
func TestForceSync(t *testing.T) {
|
||||
defer test_utils.TeardownTest()
|
||||
test_utils.SetupTest()
|
||||
|
||||
saveRepos := config.Repos
|
||||
saveRepoMap := config.RepoMap
|
||||
doneChan := make(chan config.SyncResult)
|
||||
|
@ -111,7 +120,8 @@ func TestForceSync(t *testing.T) {
|
|||
// Part 1: run a dummy sync
|
||||
repo := config.Repo{
|
||||
Name: "nux",
|
||||
SyncType: "csc-sync-dummy",
|
||||
SyncType: "csc-sync-exec",
|
||||
ExecStr: "true",
|
||||
Frequency: 7 * 86400,
|
||||
MaxTime: 30,
|
||||
Logger: logger.NewLogger("nux", "/tmp/merlin_force_sync_test_log", false),
|
||||
|
@ -202,7 +212,7 @@ func TestStartListener(t *testing.T) {
|
|||
saveConf := config.Conf
|
||||
connChan := make(chan net.Conn)
|
||||
stopLisChan := make(chan struct{})
|
||||
wait := make(chan struct{})
|
||||
stopLisAckChan := make(chan struct{})
|
||||
defer func() {
|
||||
config.Conf = saveConf
|
||||
close(connChan)
|
||||
|
@ -215,32 +225,31 @@ func TestStartListener(t *testing.T) {
|
|||
// Test 1: check that closing/sending something to stopLisChan will stop the listener
|
||||
// and that a new listener can be created after stopping the old one
|
||||
go func() {
|
||||
StartListener(connChan, stopLisChan)
|
||||
wait <- struct{}{}
|
||||
StartListener(connChan, stopLisChan, stopLisAckChan)
|
||||
}()
|
||||
stopLisChan <- struct{}{}
|
||||
select {
|
||||
case <-wait:
|
||||
case <-stopLisAckChan:
|
||||
case <-time.After(3 * time.Second):
|
||||
t.Errorf("StartListener should stop when struct{}{} is sent to stopLisChan")
|
||||
}
|
||||
|
||||
go func() {
|
||||
StartListener(connChan, stopLisChan)
|
||||
wait <- struct{}{}
|
||||
StartListener(connChan, stopLisChan, stopLisAckChan)
|
||||
}()
|
||||
close(stopLisChan)
|
||||
select {
|
||||
case <-wait:
|
||||
case <-stopLisAckChan:
|
||||
case <-time.After(3 * time.Second):
|
||||
t.Errorf("StartListener should stop when stopLisChan is closed")
|
||||
}
|
||||
close(wait)
|
||||
close(stopLisAckChan)
|
||||
|
||||
// Test 2: check that connections can be made to the unix socket
|
||||
// this test does not appear to be very stable (I think there is a race condition somewhere)
|
||||
stopLisChan = make(chan struct{})
|
||||
go StartListener(connChan, stopLisChan)
|
||||
stopLisAckChan = make(chan struct{})
|
||||
go StartListener(connChan, stopLisChan, stopLisAckChan)
|
||||
waitForMsg := func(expected string) {
|
||||
select {
|
||||
case conn := <-connChan:
|
||||
|
|
|
@ -331,11 +331,14 @@ func (repo *Repo) SaveState() {
|
|||
state_cfg := ini.Empty()
|
||||
if err := ini.ReflectFrom(state_cfg, &repo.State); err != nil {
|
||||
repo.Logger.Error(err.Error())
|
||||
return
|
||||
}
|
||||
file, err := os.OpenFile(repo.StateFile, os.O_RDWR|os.O_CREATE, 0644)
|
||||
if err != nil {
|
||||
repo.Logger.Error(err.Error())
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
if _, err := state_cfg.WriteTo(file); err != nil {
|
||||
repo.Logger.Error(err.Error())
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ func TestLoadConfig(t *testing.T) {
|
|||
stopChan := make(chan struct{})
|
||||
LoadConfig("config_test.ini", doneChan, stopChan)
|
||||
expectedConfig := Config{
|
||||
Hostname: "mirror.csclub.uwaterloo.ca",
|
||||
MaxJobs: 6,
|
||||
IPv4Address: "129.97.134.129",
|
||||
IPv6Address: "2620:101:f000:4901:c5c::129",
|
||||
|
@ -94,7 +95,7 @@ func TestLoadConfig(t *testing.T) {
|
|||
State: &RepoState{
|
||||
IsRunning: false,
|
||||
LastAttemptStartTime: 0,
|
||||
LastAttemptExit: 0,
|
||||
LastAttemptExit: 2,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
is_running = false
|
||||
last_attempt_time = 1600000000
|
||||
last_attempt_runtime = 100
|
||||
is_running = false
|
||||
last_attempt_time = 1600000000
|
||||
last_attempt_exit = 1
|
||||
|
||||
ime = 100
|
||||
last_attempt_exit = 1
|
||||
|
||||
|
|
|
@ -1,580 +0,0 @@
|
|||
max_jobs = 6
|
||||
|
||||
sock_path = /run/merlin/merlin.sock
|
||||
states_path = /home/test-mirror/merlin/states
|
||||
|
||||
; log_path? (just spes a dir and make files)
|
||||
log_file = /tmp/test-mirror/test.log
|
||||
|
||||
ipv4_address = 129.97.134.129
|
||||
ipv6_address = 2620:101:f000:4901:c5c::129
|
||||
download_dir = /tmp/test-mirror
|
||||
|
||||
; 5 hours
|
||||
; default_max_time = 18000
|
||||
; add default max_time
|
||||
; add default frequency
|
||||
; add default sync_type
|
||||
|
||||
; [DEFAULT]
|
||||
;
|
||||
|
||||
|
||||
[debian]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = bi-hourly
|
||||
local_dir = debian
|
||||
rsync_host = debian.mirror.rafal.ca
|
||||
rsync_dir = debian
|
||||
|
||||
; [debian-cdimage]
|
||||
; sync_type = csc-sync-cdimage
|
||||
; frequency = twice-daily
|
||||
; local_dir = debian-cdimage
|
||||
; rsync_host = cdimage.debian.org
|
||||
; rsync_dir = cdimage
|
||||
|
||||
[ubuntu]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = bi-hourly
|
||||
local_dir = ubuntu
|
||||
rsync_host = archive.ubuntu.com
|
||||
rsync_dir = ubuntu
|
||||
trace_host = drescher.canonical.com
|
||||
|
||||
[ubuntu-ports]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = bi-hourly
|
||||
local_dir = ubuntu-ports
|
||||
rsync_host = ports.ubuntu.com
|
||||
rsync_dir = ubuntu-ports
|
||||
trace_host = drescher.canonical.com
|
||||
|
||||
[linuxmint-packages]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = bi-hourly
|
||||
local_dir = linuxmint-packages
|
||||
rsync_host = rsync-packages.linuxmint.com
|
||||
rsync_dir = packages
|
||||
|
||||
[debian-multimedia]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = bi-hourly
|
||||
local_dir = debian-multimedia
|
||||
rsync_host = www.deb-multimedia.org
|
||||
rsync_dir = deb
|
||||
|
||||
[debian-backports]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = bi-hourly
|
||||
local_dir = debian-backports
|
||||
rsync_host = debian.mirror.rafal.ca
|
||||
rsync_dir = debian-backports
|
||||
|
||||
; [debian-volatile]
|
||||
; sync_type = csc-sync-debian
|
||||
; frequency = bi-hourly
|
||||
; local_dir = debian-volatile
|
||||
; rsync_host = debian.mirror.rafal.ca
|
||||
; rsync_dir = debian-volatile
|
||||
|
||||
[debian-security]
|
||||
sync_type = csc-sync-debian
|
||||
frequency = twice-hourly
|
||||
local_dir = debian-security
|
||||
rsync_host = rsync.security.debian.org
|
||||
rsync_dir = debian-security
|
||||
; trace_host = security-master.debian.org
|
||||
|
||||
[ubuntu-releases]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = ubuntu-releases
|
||||
rsync_host = rsync.releases.ubuntu.com
|
||||
rsync_dir = releases
|
||||
|
||||
[xubuntu-releases]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = xubuntu-releases
|
||||
rsync_host = cdimage.ubuntu.com
|
||||
rsync_dir = cdimage/xubuntu/releases/
|
||||
|
||||
; [emdebian]
|
||||
; sync_type = csc-sync-badperms
|
||||
; frequency = twice-daily
|
||||
; local_dir = emdebian
|
||||
; rsync_host = www.emdebian.org
|
||||
; rsync_dir = debian
|
||||
|
||||
[puppylinux]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = puppylinux
|
||||
rsync_host = distro.ibiblio.org
|
||||
rsync_dir = puppylinux
|
||||
|
||||
[CPAN]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = CPAN
|
||||
rsync_host = cpan-rsync.perl.org
|
||||
rsync_dir = CPAN
|
||||
|
||||
[CRAN]
|
||||
sync_type = csc-sync-ssh
|
||||
frequency = twice-daily
|
||||
local_dir = CRAN
|
||||
rsync_host = cran.r-project.org
|
||||
; address is $RSYNC_HOST:$RSYNC_DIR/ (and $RSYNC_DIR="") but rsync_dir should not be empty
|
||||
rsync_dir = /
|
||||
rsync_user = cran-rsync
|
||||
password_file = ~/.ssh/id_cran_rsa
|
||||
|
||||
[CTAN]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = CTAN
|
||||
rsync_host = rsync.dante.ctan.org
|
||||
rsync_dir = CTAN
|
||||
|
||||
; [openoffice]
|
||||
; sync_type = csc-sync-standard
|
||||
; frequency = twice-daily
|
||||
; local_dir = openoffice
|
||||
; rsync_host = rsync.services.openoffice.org
|
||||
; rsync_host = ftp.snt.utwente.nl
|
||||
; rsync_dir = openoffice-extended
|
||||
|
||||
[fedora-epel]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = fedora/epel
|
||||
rsync_host = mirrors.kernel.org
|
||||
rsync_dir = fedora-epel
|
||||
; ~/bin/report_mirror > /dev/null
|
||||
|
||||
[cygwin]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = cygwin
|
||||
rsync_host = cygwin.com
|
||||
rsync_dir = cygwin-ftp
|
||||
|
||||
[gnu]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = gnu
|
||||
; rsync_host = mirrors.ibiblio.org
|
||||
; rsync_dir = gnuftp/gnu/
|
||||
rsync_host = ftp.gnu.org
|
||||
rsync_dir = gnu
|
||||
|
||||
[nongnu]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = nongnu
|
||||
rsync_host = dl.sv.gnu.org
|
||||
rsync_dir = releases
|
||||
|
||||
[mysql]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = mysql
|
||||
; rsync_host = mysql.he.net
|
||||
; rsync_dir = mysql
|
||||
rsync_host = rsync.mirrorservice.org
|
||||
rsync_dir = ftp.mysql.com
|
||||
|
||||
; No longer syncs, and no longer really relevant
|
||||
; [mozdev]
|
||||
; sync_type = csc-sync-standard
|
||||
; frequency = twice-daily
|
||||
; local_dir = mozdev
|
||||
; rsync_host = rsync.mozdev.org
|
||||
; rsync_dir = mozdev
|
||||
|
||||
[gnome]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = gnome
|
||||
rsync_host = master.gnome.org
|
||||
rsync_dir = gnomeftp
|
||||
; password_file = gnome
|
||||
; password_file = /home/mirror/passwords/gnome
|
||||
|
||||
[damnsmalllinux]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = damnsmalllinux
|
||||
rsync_host = ftp.heanet.ie
|
||||
rsync_dir = mirrors/damnsmalllinux.org/
|
||||
|
||||
[linuxmint]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = linuxmint
|
||||
rsync_host = pub.linuxmint.com
|
||||
rsync_dir = pub
|
||||
|
||||
[kernel.org-linux]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = kernel.org/linux
|
||||
rsync_host = rsync.kernel.org
|
||||
rsync_dir = pub/linux/
|
||||
|
||||
[kernel.org-software]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = kernel.org/software
|
||||
rsync_host = rsync.kernel.org
|
||||
rsync_dir = pub/software/
|
||||
|
||||
[apache]
|
||||
sync_type = csc-sync-apache
|
||||
frequency = twice-daily
|
||||
local_dir = apache
|
||||
rsync_host = rsync.us.apache.org
|
||||
rsync_dir = apache-dist
|
||||
|
||||
[eclipse]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = eclipse
|
||||
rsync_host = download.eclipse.org
|
||||
rsync_dir = eclipseMirror
|
||||
|
||||
[kde]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = kde
|
||||
rsync_host = rsync.kde.org
|
||||
rsync_dir = kdeftp
|
||||
|
||||
[kde-applicationdata]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = kde-applicationdata
|
||||
rsync_host = rsync.kde.org
|
||||
rsync_dir = applicationdata
|
||||
|
||||
; We are a Tier 1 arch mirror (https://bugs.archlinux.org/task/52853)
|
||||
; so our IP is important.
|
||||
; our rsync_host is rsync://rsync.archlinux.org/ftp_tier1
|
||||
[archlinux]
|
||||
; csc-sync-standard archlinux archlinux.mirror.rafal.ca archlinux
|
||||
sync_type = csc-sync-archlinux
|
||||
frequency = five-minutely
|
||||
local_dir = archlinux
|
||||
rsync_host = rsync.archlinux.org
|
||||
rsync_dir = ftp_tier1
|
||||
trace_host = http://rsync.archlinux.org/lastupdate
|
||||
|
||||
[debian-ports]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = debian-ports
|
||||
rsync_host = ftp.de.debian.org
|
||||
rsync_dir = debian-ports
|
||||
|
||||
[slackware]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = slackware
|
||||
rsync_host = slackware.cs.utah.edu
|
||||
rsync_dir = slackware
|
||||
|
||||
[debian-cd]
|
||||
sync_type = csc-sync-debian-cd
|
||||
frequency = twice-daily
|
||||
|
||||
[x.org]
|
||||
; csc-sync-standard x.org xorg.freedesktop.org xorg-archive
|
||||
; csc-sync-standard x.org mirror.us.leaseweb.net xorg
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = x.org
|
||||
rsync_host = rsync.mirrorservice.org
|
||||
rsync_dir = ftp.x.org/pub
|
||||
|
||||
[centos]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = centos
|
||||
rsync_host = us-msync.centos.org
|
||||
rsync_dir = CentOS
|
||||
|
||||
[opensuse]
|
||||
; "--exclude distribution/.timestamp_invisible"
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = opensuse
|
||||
rsync_host = stage.opensuse.org
|
||||
rsync_dir = opensuse-full/opensuse/
|
||||
|
||||
[FreeBSD]
|
||||
; Has not updated since at least June 2018
|
||||
; csc-sync-standard FreeBSD ftp10.us.freebsd.org FreeBSD
|
||||
sync_type = csc-sync-standard
|
||||
; csc-sync-standard FreeBSD ftp3.us.freebsd.org FreeBSD/
|
||||
frequency = twice-daily
|
||||
local_dir = FreeBSD
|
||||
rsync_host = ftp2.uk.freebsd.org
|
||||
rsync_dir = ftp.freebsd.org/pub/FreeBSD/
|
||||
|
||||
[fedora-enchilada]
|
||||
; csc-sync-standard fedora/linux mirrors.kernel.org fedora-enchilada/linux/ --ignore-errors && ~/bin/report_mirror >/dev/null
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = fedora/linux
|
||||
rsync_host = mirrors.kernel.org
|
||||
rsync_dir = fedora-enchilada/linux/
|
||||
; ~/bin/report_mirror >/dev/null
|
||||
|
||||
[ubuntu-ports-releases]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = ubuntu-ports-releases
|
||||
rsync_host = cdimage.ubuntu.com
|
||||
rsync_dir = cdimage/releases/
|
||||
|
||||
[gentoo-distfiles]
|
||||
sync_type = csc-sync-gentoo
|
||||
frequency = bi-hourly
|
||||
|
||||
[gentoo-portage]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice_hourly
|
||||
local_dir = gentoo-portage
|
||||
rsync_host = rsync1.us.gentoo.org
|
||||
rsync_dir = gentoo-portage
|
||||
|
||||
; This project is no longer available for mirroring
|
||||
; https://bugzilla.mozilla.org/show_bug.cgi?id=807543
|
||||
; [mozilla.org]
|
||||
; csc-sync-standard mozilla.org releases-rsync.mozilla.org mozilla-releases
|
||||
; frequency = twice_hourly
|
||||
|
||||
[gutenberg]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = gutenberg
|
||||
rsync_host = ftp@ftp.ibiblio.org
|
||||
rsync_dir = gutenberg
|
||||
|
||||
[racket-installers]
|
||||
sync_type = csc-sync-wget
|
||||
frequency = twice-daily
|
||||
local_dir = racket/racket-installers
|
||||
rsync_host = https://mirror.racket-lang.org/installers/
|
||||
; for csc-sync-wget the --cut-dirs=1 is hardcoded
|
||||
|
||||
[plt-bundles]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = racket/plt-bundles
|
||||
rsync_host = mirror.racket-lang.org
|
||||
rsync_dir = plt-bundles
|
||||
|
||||
[OpenBSD]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = OpenBSD
|
||||
rsync_host = ftp3.usa.openbsd.org
|
||||
rsync_dir = ftp
|
||||
|
||||
[xiph]
|
||||
; csc-sync-standard xiph downloads.xiph.org xiph/releases
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = xiph
|
||||
rsync_host = ftp.osuosl.org
|
||||
rsync_dir = xiph
|
||||
|
||||
; We currently don't have the disk space
|
||||
[netbsd]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = NetBSD
|
||||
rsync_host = rsync.netbsd.org
|
||||
rsync_dir = NetBSD
|
||||
|
||||
[netbsd-pkgsrc]
|
||||
sync_type = csc-sync-standard
|
||||
; csc-sync-standard pkgsrc rsync3.jp.netbsd.org pub/pkgsrc/
|
||||
frequency = twice-daily
|
||||
local_dir = pkgsrc
|
||||
rsync_host = rsync.netbsd.org
|
||||
rsync_dir = pkgsrc
|
||||
|
||||
[macports-release]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = MacPorts/release
|
||||
rsync_host = rsync.macports.org
|
||||
rsync_dir = macports/release/
|
||||
|
||||
[macports-distfiles]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = MacPorts/mpdistfiles
|
||||
rsync_host = rsync.macports.org
|
||||
rsync_dir = macports/distfiles/
|
||||
|
||||
; [raspberrypi]
|
||||
; sync_type = csc-sync-standard
|
||||
; frequency = twice-daily
|
||||
; local_dir = raspberrypi
|
||||
; rsync_host = mirrors.rit.edu
|
||||
; rsync_dir = rpi
|
||||
|
||||
[sagemath]
|
||||
; csc-sync-standard sage mirror.clibre.uqam.ca sage
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = sage
|
||||
rsync_host = rsync.sagemath.org
|
||||
rsync_dir = sage
|
||||
|
||||
; [cs136]
|
||||
; csc-sync-ssh uw-coursewear/cs136 linux024.student.cs.uwaterloo.ca /u/cs136/mirror.uwaterloo.ca csc01 ~/.ssh/id_rsa_csc01
|
||||
; frequency = hourly
|
||||
|
||||
[vlc]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = vlc
|
||||
rsync_host = rsync.videolan.org
|
||||
rsync_dir = videolan-ftp
|
||||
|
||||
[qtproject]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = qtproject
|
||||
rsync_host = master.qt.io
|
||||
rsync_dir = qt-all
|
||||
|
||||
[tdf]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = tdf
|
||||
rsync_host = rsync.documentfoundation.org
|
||||
rsync_dir = tdf-pub
|
||||
|
||||
[saltstack]
|
||||
sync_type = csc-sync-s3
|
||||
frequency = daily
|
||||
local_dir = saltstack
|
||||
rsync_host = https://s3.repo.saltproject.io
|
||||
|
||||
; [kali]
|
||||
; csc-sync-standard kali kali.mirror.globo.tech kali
|
||||
; frequency = twice-daily
|
||||
|
||||
; [kali-images]
|
||||
; csc-sync-standard kali-images kali.mirror.globo.tech kali-images
|
||||
; frequency = twice-daily
|
||||
|
||||
[alpine]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = hourly
|
||||
local_dir = alpine
|
||||
rsync_host = rsync.alpinelinux.org
|
||||
rsync_dir = alpine
|
||||
|
||||
[raspbian]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = raspbian
|
||||
rsync_host = archive.raspbian.org
|
||||
rsync_dir = archive
|
||||
|
||||
[raspberrypi]
|
||||
sync_type = csc-sync-standard-ipv6
|
||||
frequency = bi-hourly
|
||||
local_dir = raspberrypi
|
||||
rsync_host = apt-repo.raspberrypi.org
|
||||
rsync_dir = archive
|
||||
|
||||
[ipfire]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = hourly
|
||||
local_dir = ipfire
|
||||
rsync_host = rsync.ipfire.org
|
||||
rsync_dir = full
|
||||
|
||||
[manjaro]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = hourly
|
||||
local_dir = manjaro
|
||||
rsync_host = mirrorservice.org
|
||||
rsync_dir = repo.manjaro.org/repos/
|
||||
|
||||
[scientific]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = scientific
|
||||
rsync_host = rsync.scientificlinux.org
|
||||
rsync_dir = scientific
|
||||
|
||||
[mxlinux]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = mxlinux
|
||||
rsync_host = mirror.math.princeton.edu
|
||||
rsync_dir = pub/mxlinux/
|
||||
|
||||
[mxlinux-iso]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = mxlinux-iso
|
||||
rsync_host = mirror.math.princeton.edu
|
||||
rsync_dir = pub/mxlinux-iso/
|
||||
|
||||
|
||||
[parabola]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = parabola
|
||||
rsync_host = repo.parabola.nu:875
|
||||
rsync_dir = repos/
|
||||
|
||||
; [hyperbola-sources]
|
||||
; csc-sync-chmod hyperbola/sources repo.hyperbola.info:52000 repo/
|
||||
; frequency = twice-daily
|
||||
|
||||
; [hyperbola-stable]
|
||||
; csc-sync-chmod hyperbola/gnu-plus-linux-libre/stable repo.hyperbola.info:52012 repo/
|
||||
; frequency = twice-daily
|
||||
|
||||
; [hyperbola-testing]
|
||||
; csc-sync-chmod hyperbola/gnu-plus-linux-libre/testing repo.hyperbola.info:52011 repo/
|
||||
; frequency = twice-daily
|
||||
|
||||
[trisquel-packages]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = trisquel/packages
|
||||
rsync_host = rsync.trisquel.info
|
||||
rsync_dir = trisquel.packages/
|
||||
|
||||
[trisquel-iso]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = twice-daily
|
||||
local_dir = trisquel/iso
|
||||
rsync_host = rsync.trisquel.info
|
||||
rsync_dir = trisquel.iso/
|
||||
|
||||
[almalinux]
|
||||
sync_type = csc-sync-standard
|
||||
frequency = bi-hourly
|
||||
local_dir = almalinux
|
||||
rsync_host = rsync.repo.almalinux.org
|
||||
rsync_dir = almalinux/
|
||||
|
||||
[ceph]
|
||||
sync_type = csc-sync-ceph
|
||||
frequency = tri-hourly
|
||||
local_dir = ceph
|
||||
rsync_host = download.ceph.com
|
|
@ -1 +0,0 @@
|
|||
("debian", "debian-backports", "debian-cd", "debian-multimedia", "debian-ports", "debian-security", "debian-unofficial", "debian-volatile", "ubuntu", "ubuntu-ports", "ubuntu-ports-releases", "ubuntu-releases", "xubuntu-releases")
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
#Dummy debian update script for testing
|
||||
echo "Updating debian-type mirror: $1"
|
||||
sleep 5
|
|
@ -1 +0,0 @@
|
|||
Wed Dec 30 03:17:50 UTC 2009
|
|
@ -1 +0,0 @@
|
|||
Sun Dec 27 03:17:50 UTC 2009
|
|
@ -1 +0,0 @@
|
|||
Sun Dec 27 03:17:50 UTC 2009
|
|
@ -1 +0,0 @@
|
|||
{'debian': 'foo'}
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
sleep 2
|
||||
echo "done syncing $1"
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
repos = {
|
||||
'gnu': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
'nongnu': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
'mysql': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
'mozdev': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
'gnome': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
'damnsmalllinux': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
'linuxmint': {
|
||||
'command': 'sleep 10',
|
||||
'interval': daily,
|
||||
},
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
Tue Dec 29 02:47:07 UTC 2009
|
|
@ -3,15 +3,15 @@ ipv6_address = 2620:101:f000:4901:c5c::f:1055
|
|||
|
||||
; max_jobs = 6
|
||||
|
||||
download_dir = /mirror/root
|
||||
trace_dir = /home/mirror-go/merlin/trace
|
||||
state_dir = /home/mirror-go/merlin/state
|
||||
download_dir = ./test_tmp/download
|
||||
trace_dir = ./test_tmp/trace
|
||||
state_dir = ./test_tmp/state
|
||||
|
||||
repo_log_dir = /home/mirror-go/merlin/log
|
||||
rsync_log_dir = /home/mirror-go/merlin/log-rsync
|
||||
zfssync_log_dir = /home/mirror-go/merlin/log-zfssync
|
||||
repo_log_dir = ./test_tmp/log
|
||||
rsync_log_dir = ./test_tmp/log-rsync
|
||||
zfssync_log_dir = ./test_tmp/log-zfssync
|
||||
|
||||
sock_path = /mirror/merlin/run/merlin-go.sock
|
||||
sock_path = ./test_tmp/merlin-go.sock
|
||||
|
||||
[ubuntu]
|
||||
dry_run = true
|
|
@ -0,0 +1,50 @@
|
|||
package test_utils
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path"
|
||||
|
||||
"git.csclub.uwaterloo.ca/public/merlin/config"
|
||||
)
|
||||
|
||||
const TmpDir = "./test_tmp"
|
||||
|
||||
func removeTmpDir() {
|
||||
_, err := os.Stat(TmpDir)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return
|
||||
}
|
||||
panic(err)
|
||||
}
|
||||
err = os.RemoveAll(TmpDir)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func createTmpDir() {
|
||||
for _, subdir := range []string{"download/ubuntu"} {
|
||||
err := os.MkdirAll(path.Join(TmpDir, subdir), 0755)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func SetupTestWithConfig(configPath string) (doneChan chan config.SyncResult, stopChan chan struct{}) {
|
||||
removeTmpDir()
|
||||
createTmpDir()
|
||||
doneChan = make(chan config.SyncResult)
|
||||
stopChan = make(chan struct{})
|
||||
config.LoadConfig(configPath, doneChan, stopChan)
|
||||
return
|
||||
}
|
||||
|
||||
func SetupTest() (chan config.SyncResult, chan struct{}) {
|
||||
return SetupTestWithConfig("test_utils/merlin-config-test.ini")
|
||||
}
|
||||
|
||||
func TeardownTest() {
|
||||
removeTmpDir()
|
||||
}
|
Loading…
Reference in New Issue