Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: tests/gclient_smoketest.py

Issue 2897010: Add a test more representative of what WebKit does. (Closed)
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/fake_repos.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/gclient_smoketest.py
diff --git a/tests/gclient_smoketest.py b/tests/gclient_smoketest.py
index e10840d5c39d9d7a2ba7a7cb5c10f5462a9092e7..afd440aba32a1ee0f31f26eeaf7fafaf47235af8 100755
--- a/tests/gclient_smoketest.py
+++ b/tests/gclient_smoketest.py
@@ -17,7 +17,7 @@ import subprocess
import sys
import unittest
-from fake_repos import join, write, FakeReposTestBase
+from fake_repos import check_call, join, write, FakeReposTestBase
GCLIENT_PATH = join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
'gclient')
@@ -103,7 +103,7 @@ class GClientSmokeBase(FakeReposTestBase):
path = self.root_dir
self.checkString(results[i][0][0], verb, (i, results[i][0][0], verb))
self.checkString(results[i][0][2], path, (i, results[i][0][2], path))
- self.assertEquals(len(results), len(items))
+ self.assertEquals(len(results), len(items), (stdout, items))
return results
def svnBlockCleanup(self, out):
@@ -746,6 +746,84 @@ class GClientSmokeBoth(GClientSmokeBase):
self.assertEquals(sorted(entries), sorted(expected))
+class GClientSmokeFromCheckout(GClientSmokeBase):
+ # WebKit abuses this. It has a .gclient and a DEPS from a checkout.
+ def setUp(self):
+ GClientSmokeBase.setUp(self)
+ self.FAKE_REPOS.setUpSVN()
+ os.rmdir(self.root_dir)
+ check_call(['svn', 'checkout', 'svn://127.0.0.1/svn/trunk/webkit',
+ self.root_dir, '-q',
+ '--non-interactive', '--no-auth-cache',
+ '--username', 'user1', '--password', 'foo'])
+
+ def testSync(self):
+ self.parseGclient(['sync', '--deps', 'mac'], ['running', 'running'])
+ tree = self.mangle_svn_tree(
+ ('trunk/webkit@2', ''),
+ ('trunk/third_party/foo@1', 'foo/bar'))
+ self.assertTree(tree)
+
+ def testRevertAndStatus(self):
+ self.gclient(['sync'])
+
+ # TODO(maruel): This is incorrect.
+ out = self.parseGclient(['status', '--deps', 'mac'], [])
+
+ # Revert implies --force implies running hooks without looking at pattern
+ # matching.
+ results = self.gclient(['revert', '--deps', 'mac'])
+ out = self.splitBlock(results[0])
+ self.assertEquals(2, len(out))
+ self.checkString(2, len(out[0]))
+ self.checkString(2, len(out[1]))
+ self.checkString('foo', out[1][1])
+ self.checkString('', results[1])
+ self.assertEquals(0, results[2])
+ tree = self.mangle_svn_tree(
+ ('trunk/webkit@2', ''),
+ ('trunk/third_party/foo@1', 'foo/bar'))
+ self.assertTree(tree)
+
+ # TODO(maruel): This is incorrect.
+ out = self.parseGclient(['status', '--deps', 'mac'], [])
+
+ def testRunHooks(self):
+ # Hooks aren't really tested for now since there is no hook defined.
+ self.gclient(['sync', '--deps', 'mac'])
+ out = self.parseGclient(['runhooks', '--deps', 'mac'], ['running'])
+ self.assertEquals(1, len(out))
+ self.assertEquals(2, len(out[0]))
+ self.assertEquals(3, len(out[0][0]))
+ self.checkString('foo', out[0][1])
+ tree = self.mangle_svn_tree(
+ ('trunk/webkit@2', ''),
+ ('trunk/third_party/foo@1', 'foo/bar'))
+ self.assertTree(tree)
+
+ def testRevInfo(self):
+ self.gclient(['sync', '--deps', 'mac'])
+ results = self.gclient(['revinfo', '--deps', 'mac'])
+ expected = (
+ './: None;\nfoo/bar: svn://127.0.0.1/svn/trunk/third_party/foo@1\n',
+ '', 0)
+ self.check(expected, results)
+ # TODO(maruel): To be added after the refactor.
+ #results = self.gclient(['revinfo', '--snapshot'])
+ #expected = (
+ # './: None;\nfoo/bar: svn://127.0.0.1/svn/trunk/third_party/foo@1\n',
+ # '', 0)
+ #self.check(expected, results)
+
+ def testRest(self):
+ self.gclient(['sync'])
+ # TODO(maruel): This is incorrect, it should run on ./ too.
+ out = self.parseGclient(['cleanup', '--deps', 'mac'],
+ [('running', join(self.root_dir, 'foo', 'bar'))])
+ out = self.parseGclient(['diff', '--deps', 'mac'],
+ [('running', join(self.root_dir, 'foo', 'bar'))])
+
+
if __name__ == '__main__':
if '-c' in sys.argv:
COVERAGE = True
« no previous file with comments | « tests/fake_repos.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698