diff --git a/Makefile b/Makefile
index 7be8be0b5008ba16d3d55409a12d090359a26c60..e6c463e7e4be0e2f90017d328128b5f66343cb23 100644
--- a/Makefile
+++ b/Makefile
@@ -11,8 +11,9 @@ install:
 	install centr /usr/bin/centr
 
 clean:
-	rm *.o
-	rm centr
+	@rm -f *.o
+	@rm -f centr
+	@rm -f centr.local
 
 centr: buf.o pages.o centr.c
 	gcc centr.c buf.o pages.o -o centr
diff --git a/tests/aux/Makefile.aux b/tests/aux/Makefile.aux
new file mode 100644
index 0000000000000000000000000000000000000000..9ae52d05476ff5fd0570aa628ccebc2566fe280b
--- /dev/null
+++ b/tests/aux/Makefile.aux
@@ -0,0 +1,2 @@
+centr.local: buf.o pages.o centr.local.c
+	gcc centr.local.c buf.o pages.o -o centr.local
diff --git a/tests/aux/install-package b/tests/aux/install-package
new file mode 100755
index 0000000000000000000000000000000000000000..db4d6d490603f5aee28d55d0ac6f70ad1bfb5a4d
--- /dev/null
+++ b/tests/aux/install-package
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+PN=$( head -c 32 /dev/urandom|base64|sed -e 's/[/+=]//g' )
+VERSION=$( echo "3k $( head -c 1 /dev/urandom|hexdump -d|head -n 1|sed -e 's/[^ ]*[ ]*//'|sed -e 's/ //g' ) $( head -c 1 /dev/urandom|hexdump -d|head -n 1|sed -e 's/[^ ]*[ ]*//' ) / p"|dc )
+
+#echo "${PN}-${VERSION}"
+mkdir -p "R/library/${1}/${PN}"
+
+echo "Version: ${VERSION}" > "R/library/${1}/${PN}/DESCRIPTION"
diff --git a/tests/test.json b/tests/test.json
new file mode 100644
index 0000000000000000000000000000000000000000..4b4cae0f9289bad840b3bd5ecf4b72cac816da5f
--- /dev/null
+++ b/tests/test.json
@@ -0,0 +1,50 @@
+{
+    "name" : "centR tests",
+        "what is this" : "  These are the tests to be run after centr is built  ",
+
+            "serial_tasks" : [
+                        {
+							"name" : "Build centr.local",
+                            "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" }],
+                            "actions" : ["cat repo/centr.c|sed -e 's/\"\\/appl\\/centr\\/repo/\"\\/tmp\\/fakerepo/' > repo/centr.local.c",
+                                         "cat repo/Makefile repo/tests/aux/Makefile.aux > repo/Makefile.tmp",
+                                         "cd repo","make -f Makefile.tmp centr.local", "rm -f Makefile.tmp", "rm -f centr.local.c",
+                                         "cd .."
+                            ],
+                            "success_conditions" : [ { "name" : "centr.local exists", "type" : "file_exists", "file" : "repo/centr.local" } ]
+                        },
+                        {
+                            "name" : "Build fake repo",
+                            "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" },
+                                { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" }
+                            ],
+                            "actions" : [ "mkdir tmp/fakerepo", "touch tmp/fakerepo/mine" ],
+                            "success_conditions" : [ { "name" : "fake repo exists", "type" : "file_exists", "file" : "tmp/fakerepo/mine" } ]
+                        },
+                        {
+                            "name" : "Generate and donate fake packages",
+                            "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" },
+                                { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" }
+                            ],
+                            "actions" : [ "for n in {1..365}; do repo/tests/aux/install-package 6.6; done", "repo/centr.local donate", "repo/centr.local dump|sort -k 1 > repo/list1" ],
+                            "success_conditions" : [ { "name" : "no errors", "type" : "exitcode0" } ]
+                        },
+                        {
+                            "name" : "Rebuild project from previous manifest",
+                            "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" },
+                                { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" }
+                            ],
+                            "actions" : [ "cat repo/list1|repo/centr.local rebuild", "repo/centr.local dump|sort -k 1 > repo/list2", "diff repo/list1 repo/list2 > repo/diffresult" ],
+                            "success_conditions" : [ {"name" : "rebuilt project is the same", "type":"md5sum", "file":"repo/diffresult", "checksum":"d41d8cd98f00b204e9800998ecf8427e" } ,{ "name" : "no errors", "type" : "exitcode0" } ]
+                        },
+                        {
+                            "name" : "Remove unnecessary files",
+                            "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" },
+                                { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" }
+                            ],
+                            "actions" : [ "rm -f repo/list1 repo/list2 repo/diffresult repo/centr.local", "chmod -R u+w tmp/fakerepo" ,"rm -rf tmp/fakerepo" ],
+                            "success_conditions" : [ { "name" : "no errors", "type" : "exitcode0" } ]
+                        }
+            
+            ]
+}