diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/tests/fetch.py | 55 |
1 files changed, 52 insertions, 3 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index 42af8839e0..d890ec990e 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
@@ -26,6 +26,32 @@ import bb | |||
26 | 26 | ||
27 | class FetcherTest(unittest.TestCase): | 27 | class FetcherTest(unittest.TestCase): |
28 | 28 | ||
29 | replaceuris = { | ||
30 | ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "http://somewhere.org/somedir/") | ||
31 | : "http://somewhere.org/somedir/git2_git.invalid.infradead.org.mtd-utils.git.tar.gz", | ||
32 | ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http") | ||
33 | : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http", | ||
34 | ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http") | ||
35 | : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http", | ||
36 | ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/\\2;protocol=http") | ||
37 | : "git://somewhere.org/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http", | ||
38 | ("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890", "git://someserver.org/bitbake", "git://git.openembedded.org/bitbake") | ||
39 | : "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890", | ||
40 | ("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache") | ||
41 | : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz", | ||
42 | ("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache/") | ||
43 | : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz", | ||
44 | ("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org/somedir3") | ||
45 | : "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz", | ||
46 | ("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz") | ||
47 | : "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz", | ||
48 | ("http://www.apache.org/dist/subversion/subversion-1.7.1.tar.bz2", "http://www.apache.org/dist", "http://archive.apache.org/dist") | ||
49 | : "http://archive.apache.org/dist/subversion/subversion-1.7.1.tar.bz2" | ||
50 | #Renaming files doesn't work | ||
51 | #("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz" | ||
52 | #("file://sstate-xyz.tgz", "file://.*/.*", "file:///somewhere/1234/sstate-cache") : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz", | ||
53 | } | ||
54 | |||
29 | def setUp(self): | 55 | def setUp(self): |
30 | self.d = bb.data.init() | 56 | self.d = bb.data.init() |
31 | self.tempdir = tempfile.mkdtemp() | 57 | self.tempdir = tempfile.mkdtemp() |
@@ -64,7 +90,7 @@ class FetcherTest(unittest.TestCase): | |||
64 | fetcher.download() | 90 | fetcher.download() |
65 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | 91 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) |
66 | 92 | ||
67 | def test_gitfetch(self): | 93 | def gitfetcher(self, url1, url2): |
68 | def checkrevision(self, fetcher): | 94 | def checkrevision(self, fetcher): |
69 | fetcher.unpack(self.unpackdir) | 95 | fetcher.unpack(self.unpackdir) |
70 | revision = subprocess.check_output("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git").strip() | 96 | revision = subprocess.check_output("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git").strip() |
@@ -72,17 +98,40 @@ class FetcherTest(unittest.TestCase): | |||
72 | 98 | ||
73 | self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1") | 99 | self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1") |
74 | self.d.setVar("SRCREV", "270a05b0b4ba0959fe0624d2a4885d7b70426da5") | 100 | self.d.setVar("SRCREV", "270a05b0b4ba0959fe0624d2a4885d7b70426da5") |
75 | fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake"], self.d) | 101 | fetcher = bb.fetch.Fetch([url1], self.d) |
76 | fetcher.download() | 102 | fetcher.download() |
77 | checkrevision(self, fetcher) | 103 | checkrevision(self, fetcher) |
78 | # Wipe out the dldir clone and the unpacked source, turn off the network and check mirror tarball works | 104 | # Wipe out the dldir clone and the unpacked source, turn off the network and check mirror tarball works |
79 | bb.utils.prunedir(self.dldir + "/git2/") | 105 | bb.utils.prunedir(self.dldir + "/git2/") |
80 | bb.utils.prunedir(self.unpackdir) | 106 | bb.utils.prunedir(self.unpackdir) |
81 | self.d.setVar("BB_NO_NETWORK", "1") | 107 | self.d.setVar("BB_NO_NETWORK", "1") |
82 | fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake"], self.d) | 108 | fetcher = bb.fetch.Fetch([url2], self.d) |
83 | fetcher.download() | 109 | fetcher.download() |
84 | checkrevision(self, fetcher) | 110 | checkrevision(self, fetcher) |
85 | 111 | ||
112 | def test_gitfetch(self): | ||
113 | url1 = url2 = "git://git.openembedded.org/bitbake" | ||
114 | self.gitfetcher(url1, url2) | ||
115 | |||
116 | def test_gitfetch_premirror(self): | ||
117 | url1 = "git://git.openembedded.org/bitbake" | ||
118 | url2 = "git://someserver.org/bitbake" | ||
119 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | ||
120 | self.gitfetcher(url1, url2) | ||
121 | |||
122 | def test_gitfetch_premirror2(self): | ||
123 | url1 = url2 = "git://someserver.org/bitbake" | ||
124 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | ||
125 | self.gitfetcher(url1, url2) | ||
126 | |||
127 | def test_urireplace(self): | ||
128 | for k, v in self.replaceuris.items(): | ||
129 | ud = bb.fetch.FetchData(k[0], self.d) | ||
130 | ud.setup_localpath(self.d) | ||
131 | newuris = bb.fetch2.uri_replace(ud, k[1], k[2], self.d) | ||
132 | self.assertEqual(newuris, v) | ||
133 | |||
134 | |||
86 | class URLHandle(unittest.TestCase): | 135 | class URLHandle(unittest.TestCase): |
87 | 136 | ||
88 | datatable = { | 137 | datatable = { |