[Midnightbsd-cvs] mports: Design.txt: Add notes on the design of the port testing system

ctriv at midnightbsd.org ctriv at midnightbsd.org
Sat Sep 1 23:03:13 EDT 2007


Log Message:
-----------
Add notes on the design of the port testing system (magus).

Added Files:
-----------
    mports/Tools/magus:
        Design.txt (r1.1)

-------------- next part --------------
--- /dev/null
+++ Tools/magus/Design.txt
@@ -0,0 +1,50 @@
+$MidnightBSD: mports/Tools/magus/Design.txt,v 1.1 2007/09/02 03:03:13 ctriv Exp $
+
+This is just some rough notes on the design on magus.  It is in cvs for
+backing up and so that other interested contributers can see what I am
+thinking.  
+
+Tests ports, /and/ makes packages.
+
+
+Master machine.
+
+No NFS mount - we have a distributed build cluster.
+Mysql used to track locks, the priority queue, and tested ports.
+Some how needs to track when ports are updated.  cvs of course.  Push or
+pull?
+
+
+Slaves:
+LOCK TABLE test_queue WRITE
+LOCK TABLE locks WRITE
+SELECT * FROM test_queue WHERE arch=$my_arch ORDER BY priority LIMIT 1;
+DELETE FROM test_queue WHERE id=$last_select;
+INSERT INTO locks (port,arch) VALUES ($port->name, $my_arch)
+UNLOCK TABLE test_queue
+UNLOCK TABLE locks
+
+setup_chroot();
+test_port($port);
+clear_chroot();
+
+LOCK TABLE locks WRITE
+DELETE FROM locks WHERE port=$port AND arch=$my_arch
+UNLOCK TABLE locks;
+
+sub test_port {
+
+	for $depend ($port->all_depends) {
+		if (master_has_package($depend, $my_arch)) {
+			install_package_from_master($depend, $my_arch))
+		} else {
+			test_port($depend);
+		}
+	}
+
+	chroot_and_install($port);
+	upload_pkg_to_master($port);
+	report_results($port)
+}
+	
+	
\ No newline at end of file


More information about the Midnightbsd-cvs mailing list