[limb-svn] r6761 - in buildman/trunk: bin src/model tests

svn at limb-project.com svn at limb-project.com
Wed Jan 30 17:39:27 MSK 2008


Author: wiliam
Date: 2008-01-30 17:39:26 +0300 (Wed, 30 Jan 2008)
New Revision: 6761
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6761

Added:
   buildman/trunk/tests/.setup.php
Modified:
   buildman/trunk/bin/build.php
   buildman/trunk/src/model/Project.class.php
   buildman/trunk/tests/BuildTest.class.php
   buildman/trunk/tests/CategoryTest.class.php
   buildman/trunk/tests/ProjectTest.class.php
Log:
-- current test runner adadptation + tests fix
-- project revision now received in xml format due to svn language differences 

Modified: buildman/trunk/bin/build.php
===================================================================
--- buildman/trunk/bin/build.php	2008-01-30 11:36:28 UTC (rev 6760)
+++ buildman/trunk/bin/build.php	2008-01-30 14:39:26 UTC (rev 6761)
@@ -10,18 +10,20 @@
   }
 }
 
-if(!isset($argv[1])) 
+if(!isset($argv[1]))
 {
   foreach(Project :: findAllProjects() as $project)
+  {
     $project->build(new CliListener());
-} 
-else 
+  }
+}
+else
 {
-  if($project = Project :: findProject($argv[1])) 
+  if($project = Project :: findProject($argv[1]))
   {
     $project->build(new CliListener());
-  } 
-  else 
+  }
+  else
   {
     echo "Error: project '" . $argv[1] . "' not found\n";
     exit(1);

Modified: buildman/trunk/src/model/Project.class.php
===================================================================
--- buildman/trunk/src/model/Project.class.php	2008-01-30 11:36:28 UTC (rev 6760)
+++ buildman/trunk/src/model/Project.class.php	2008-01-30 14:39:26 UTC (rev 6761)
@@ -262,7 +262,7 @@
       if($item != '.' && $item != '..' && is_dir($dir . '/' . $item) && preg_match('~r(\d+)~',$item,$matches)) {
         $builds[intval($matches[1])] = new Build($dir . '/' . $item);
       }
-	
+
     }
     krsort($builds);
     return array_values($builds);
@@ -327,8 +327,10 @@
   {
     $svn = BUILDMAN_SVN_BIN;
     $scm_opts = $this->_getRaw('scm_opts');
-    preg_match('~Revision:\s*(\d+)\s+~i', `$svn info $scm_opts $path`, $m);
-    return isset($m[1]) ? $m[1] : null;
+    $cmd = "$svn info --xml $scm_opts $path";
+    $xmlstr = `$cmd`;
+    $xml = new SimpleXMLElement($xmlstr);
+    return $xml->entry[0]->commit['revision'];
   }
 
   function getWc()
@@ -356,7 +358,7 @@
   {
     return $this->_getFileContents($this->getLastBuildRevFile());
   }
-  
+
   function getBuildsAmount()
   {
     return sizeof($this->getBuilds());

Added: buildman/trunk/tests/.setup.php
===================================================================
--- buildman/trunk/tests/.setup.php	                        (rev 0)
+++ buildman/trunk/tests/.setup.php	2008-01-30 14:39:26 UTC (rev 6761)
@@ -0,0 +1,9 @@
+<?php
+ at define('TEST_VAR_DIR', dirname(__FILE__) . '/var/');
+ at define('BUILDMAN_PROJECTS_BUILDS_DIR', TEST_VAR_DIR . '/builds/');
+ at define('BUILDMAN_PROJECTS_WC_DIR', TEST_VAR_DIR . '/wc/');
+ at define('BUILDMAN_PROJECTS_SANDBOX_DIR', TEST_VAR_DIR . '/projects/');
+ at define('BUILDMAN_PROJECTS_SETTINGS_DIR', TEST_VAR_DIR . '/settings/');
+
+require_once(dirname(__FILE__) . '/../setup.php');
+?>
\ No newline at end of file

Modified: buildman/trunk/tests/BuildTest.class.php
===================================================================
--- buildman/trunk/tests/BuildTest.class.php	2008-01-30 11:36:28 UTC (rev 6760)
+++ buildman/trunk/tests/BuildTest.class.php	2008-01-30 14:39:26 UTC (rev 6761)
@@ -51,32 +51,32 @@
   {
     $build = Build :: createBuild(TEST_VAR_DIR, 'foo', $rev = 21, $time = time());
     $this->assertEqual(Build :: STATE_UNDEF, $build->getState());
-    $this->assertFalse($build->isError());
+    $this->assertFalse($build->getIsError());
   }
 
   function testMarkOk()
   {
     $build1 = Build :: createBuild(TEST_VAR_DIR, 'foo', $rev = 378, $time = time());
     $build1->markOk();
-    $this->assertFalse($build1->isError());
+    $this->assertFalse($build1->getIsError());
     $this->assertEqual(Build :: STATE_OK, $build1->getState());
 
     $build2 = Build :: createBuild(TEST_VAR_DIR, 'foo', $rev, $time);
-    $this->assertFalse($build2->isError());
+    $this->assertFalse($build2->getIsError());
     $this->assertEqual(Build :: STATE_OK, $build2->getState());
   }
 
   function testMarkError()
   {
     $build1 = Build :: createBuild(TEST_VAR_DIR, 'foo', $rev = 48, $time = time());
-    $this->assertFalse($build1->isError());
+    $this->assertFalse($build1->getIsError());
     $build1->markError();
-    $this->assertTrue($build1->isError());
+    $this->assertTrue($build1->getIsError());
     $this->assertEqual(Build :: STATE_ERROR, $build1->getState());
 
     $build2 = Build :: createBuild(TEST_VAR_DIR, 'foo', $rev, $time);
     $this->assertEqual(Build :: STATE_ERROR, $build2->getState());
-    $this->assertTrue($build2->isError());
+    $this->assertTrue($build2->getIsError());
   }
 }
 

Modified: buildman/trunk/tests/CategoryTest.class.php
===================================================================
--- buildman/trunk/tests/CategoryTest.class.php	2008-01-30 11:36:28 UTC (rev 6760)
+++ buildman/trunk/tests/CategoryTest.class.php	2008-01-30 14:39:26 UTC (rev 6761)
@@ -15,26 +15,26 @@
 
   function testFindCategories()
   {
-    //cat1
+    //category
     $this->_createProject(
     'foo',
     "repository=svn://svn.bit/1
     build_cmd=php %project_dir%/cli/build.php
-    category=cat1");
+    category=category");
 
-    //cat2
+    //zuppa category
     $this->_createProject(
     'zoo',
     "repository=svn://svn.bit/3
     build_cmd=php %project_dir%/cli/build.php
-    category=cat2");
+    category=zuppa category");
 
-    //cat1
+    //category
     $this->_createProject(
     'bar',
     "repository=svn://svn.bit/2
     build_cmd=php %project_dir%/cli/build.php
-    category=cat1");
+    category=category");
 
     //default category
     $this->_createProject(
@@ -43,12 +43,16 @@
     build_cmd=php %project_dir%/cli/build.php");
 
     //entries are sorted by name
-    list($cat1, $cat2, $cat3) = Category :: findAllCategories();
+    list($category, $category_default, $category_zuppa) = Category :: findAllCategories();
 
-    list($p0) = $cat1->getProjects();
-    list($p1, $p2) = $cat2->getProjects();
-    list($p3) = $cat3->getProjects();
+    $this->assertEqual($category->getName(), 'category');
+    $this->assertEqual($category_default->getName(), 'default');
+    $this->assertEqual($category_zuppa->getName(), 'zuppa category');
 
+    list($p0) = $category_default->getProjects();
+    list($p1, $p2) = $category->getProjects();
+    list($p3) = $category_zuppa->getProjects();
+
     $this->assertEqual($p0->getName(), 'wow');//entries are sorted by name
 
     $this->assertEqual($p1->getName(), 'bar');

Modified: buildman/trunk/tests/ProjectTest.class.php
===================================================================
--- buildman/trunk/tests/ProjectTest.class.php	2008-01-30 11:36:28 UTC (rev 6760)
+++ buildman/trunk/tests/ProjectTest.class.php	2008-01-30 14:39:26 UTC (rev 6761)
@@ -60,6 +60,8 @@
 
     $project2 = new Project('foo');
     $this->assertEqual($project2->getBuilds(), array($b2, $b1));//latest come first!
+    $this->assertEqual($last_build = $project2->getLastBuild(), $b2);
+    $this->assertEqual($last_build->getBuildRevision(), $rev2);
   }
 
   function testRemoveBuild()



More information about the limb-svn mailing list