diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/tests/fetch.py | 434 |
1 files changed, 222 insertions, 212 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index 209b13f695..154bf1779b 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
@@ -28,6 +28,11 @@ from bb.fetch2 import URI | |||
28 | from bb.fetch2 import FetchMethod | 28 | from bb.fetch2 import FetchMethod |
29 | import bb | 29 | import bb |
30 | 30 | ||
31 | def skipIfNoNetwork(): | ||
32 | if os.environ.get("BB_SKIP_NETTESTS") == "yes": | ||
33 | return unittest.skip("Network tests being skipped") | ||
34 | return lambda f: f | ||
35 | |||
31 | class URITest(unittest.TestCase): | 36 | class URITest(unittest.TestCase): |
32 | test_uris = { | 37 | test_uris = { |
33 | "http://www.google.com/index.html" : { | 38 | "http://www.google.com/index.html" : { |
@@ -518,141 +523,153 @@ class FetcherLocalTest(FetcherTest): | |||
518 | self.fetchUnpack(['file://a;subdir=/bin/sh']) | 523 | self.fetchUnpack(['file://a;subdir=/bin/sh']) |
519 | 524 | ||
520 | class FetcherNetworkTest(FetcherTest): | 525 | class FetcherNetworkTest(FetcherTest): |
526 | @skipIfNoNetwork() | ||
527 | def test_fetch(self): | ||
528 | fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d) | ||
529 | fetcher.download() | ||
530 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | ||
531 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.1.tar.gz"), 57892) | ||
532 | self.d.setVar("BB_NO_NETWORK", "1") | ||
533 | fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d) | ||
534 | fetcher.download() | ||
535 | fetcher.unpack(self.unpackdir) | ||
536 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9) | ||
537 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9) | ||
521 | 538 | ||
522 | if os.environ.get("BB_SKIP_NETTESTS") == "yes": | 539 | @skipIfNoNetwork() |
523 | print("Unset BB_SKIP_NETTESTS to run network tests") | 540 | def test_fetch_mirror(self): |
524 | else: | 541 | self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") |
525 | def test_fetch(self): | 542 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) |
526 | fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d) | 543 | fetcher.download() |
527 | fetcher.download() | 544 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) |
528 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | 545 | |
529 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.1.tar.gz"), 57892) | 546 | @skipIfNoNetwork() |
530 | self.d.setVar("BB_NO_NETWORK", "1") | 547 | def test_fetch_mirror_of_mirror(self): |
531 | fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d) | 548 | self.d.setVar("MIRRORS", "http://.*/.* http://invalid2.yoctoproject.org/ \n http://invalid2.yoctoproject.org/.* http://downloads.yoctoproject.org/releases/bitbake") |
532 | fetcher.download() | 549 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) |
533 | fetcher.unpack(self.unpackdir) | 550 | fetcher.download() |
534 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9) | 551 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) |
535 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9) | 552 | |
536 | 553 | @skipIfNoNetwork() | |
537 | def test_fetch_mirror(self): | 554 | def test_fetch_file_mirror_of_mirror(self): |
538 | self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") | 555 | self.d.setVar("MIRRORS", "http://.*/.* file:///some1where/ \n file:///some1where/.* file://some2where/ \n file://some2where/.* http://downloads.yoctoproject.org/releases/bitbake") |
539 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) | 556 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) |
540 | fetcher.download() | 557 | os.mkdir(self.dldir + "/some2where") |
541 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | 558 | fetcher.download() |
542 | 559 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | |
543 | def test_fetch_mirror_of_mirror(self): | 560 | |
544 | self.d.setVar("MIRRORS", "http://.*/.* http://invalid2.yoctoproject.org/ \n http://invalid2.yoctoproject.org/.* http://downloads.yoctoproject.org/releases/bitbake") | 561 | @skipIfNoNetwork() |
545 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) | 562 | def test_fetch_premirror(self): |
546 | fetcher.download() | 563 | self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") |
547 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | 564 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) |
548 | 565 | fetcher.download() | |
549 | def test_fetch_file_mirror_of_mirror(self): | 566 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) |
550 | self.d.setVar("MIRRORS", "http://.*/.* file:///some1where/ \n file:///some1where/.* file://some2where/ \n file://some2where/.* http://downloads.yoctoproject.org/releases/bitbake") | 567 | |
551 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) | 568 | @skipIfNoNetwork() |
552 | os.mkdir(self.dldir + "/some2where") | 569 | def gitfetcher(self, url1, url2): |
553 | fetcher.download() | 570 | def checkrevision(self, fetcher): |
554 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | ||
555 | |||
556 | def test_fetch_premirror(self): | ||
557 | self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") | ||
558 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) | ||
559 | fetcher.download() | ||
560 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | ||
561 | |||
562 | def gitfetcher(self, url1, url2): | ||
563 | def checkrevision(self, fetcher): | ||
564 | fetcher.unpack(self.unpackdir) | ||
565 | revision = bb.process.run("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git")[0].strip() | ||
566 | self.assertEqual(revision, "270a05b0b4ba0959fe0624d2a4885d7b70426da5") | ||
567 | |||
568 | self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1") | ||
569 | self.d.setVar("SRCREV", "270a05b0b4ba0959fe0624d2a4885d7b70426da5") | ||
570 | fetcher = bb.fetch.Fetch([url1], self.d) | ||
571 | fetcher.download() | ||
572 | checkrevision(self, fetcher) | ||
573 | # Wipe out the dldir clone and the unpacked source, turn off the network and check mirror tarball works | ||
574 | bb.utils.prunedir(self.dldir + "/git2/") | ||
575 | bb.utils.prunedir(self.unpackdir) | ||
576 | self.d.setVar("BB_NO_NETWORK", "1") | ||
577 | fetcher = bb.fetch.Fetch([url2], self.d) | ||
578 | fetcher.download() | ||
579 | checkrevision(self, fetcher) | ||
580 | |||
581 | def test_gitfetch(self): | ||
582 | url1 = url2 = "git://git.openembedded.org/bitbake" | ||
583 | self.gitfetcher(url1, url2) | ||
584 | |||
585 | def test_gitfetch_goodsrcrev(self): | ||
586 | # SRCREV is set but matches rev= parameter | ||
587 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
588 | self.gitfetcher(url1, url2) | ||
589 | |||
590 | def test_gitfetch_badsrcrev(self): | ||
591 | # SRCREV is set but does not match rev= parameter | ||
592 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=dead05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
593 | self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2) | ||
594 | |||
595 | def test_gitfetch_tagandrev(self): | ||
596 | # SRCREV is set but does not match rev= parameter | ||
597 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5;tag=270a05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
598 | self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2) | ||
599 | |||
600 | def test_gitfetch_localusehead(self): | ||
601 | # Create dummy local Git repo | ||
602 | src_dir = tempfile.mkdtemp(dir=self.tempdir, | ||
603 | prefix='gitfetch_localusehead_') | ||
604 | src_dir = os.path.abspath(src_dir) | ||
605 | bb.process.run("git init", cwd=src_dir) | ||
606 | bb.process.run("git commit --allow-empty -m'Dummy commit'", | ||
607 | cwd=src_dir) | ||
608 | # Use other branch than master | ||
609 | bb.process.run("git checkout -b my-devel", cwd=src_dir) | ||
610 | bb.process.run("git commit --allow-empty -m'Dummy commit 2'", | ||
611 | cwd=src_dir) | ||
612 | stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir) | ||
613 | orig_rev = stdout[0].strip() | ||
614 | |||
615 | # Fetch and check revision | ||
616 | self.d.setVar("SRCREV", "AUTOINC") | ||
617 | url = "git://" + src_dir + ";protocol=file;usehead=1" | ||
618 | fetcher = bb.fetch.Fetch([url], self.d) | ||
619 | fetcher.download() | ||
620 | fetcher.unpack(self.unpackdir) | ||
621 | stdout = bb.process.run("git rev-parse HEAD", | ||
622 | cwd=os.path.join(self.unpackdir, 'git')) | ||
623 | unpack_rev = stdout[0].strip() | ||
624 | self.assertEqual(orig_rev, unpack_rev) | ||
625 | |||
626 | def test_gitfetch_remoteusehead(self): | ||
627 | url = "git://git.openembedded.org/bitbake;usehead=1" | ||
628 | self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url) | ||
629 | |||
630 | def test_gitfetch_premirror(self): | ||
631 | url1 = "git://git.openembedded.org/bitbake" | ||
632 | url2 = "git://someserver.org/bitbake" | ||
633 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | ||
634 | self.gitfetcher(url1, url2) | ||
635 | |||
636 | def test_gitfetch_premirror2(self): | ||
637 | url1 = url2 = "git://someserver.org/bitbake" | ||
638 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | ||
639 | self.gitfetcher(url1, url2) | ||
640 | |||
641 | def test_gitfetch_premirror3(self): | ||
642 | realurl = "git://git.openembedded.org/bitbake" | ||
643 | dummyurl = "git://someserver.org/bitbake" | ||
644 | self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git") | ||
645 | os.chdir(self.tempdir) | ||
646 | bb.process.run("git clone %s %s 2> /dev/null" % (realurl, self.sourcedir), shell=True) | ||
647 | self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file \n" % (dummyurl, self.sourcedir)) | ||
648 | self.gitfetcher(dummyurl, dummyurl) | ||
649 | |||
650 | def test_git_submodule(self): | ||
651 | fetcher = bb.fetch.Fetch(["gitsm://git.yoctoproject.org/git-submodule-test;rev=f12e57f2edf0aa534cf1616fa983d165a92b0842"], self.d) | ||
652 | fetcher.download() | ||
653 | # Previous cwd has been deleted | ||
654 | os.chdir(os.path.dirname(self.unpackdir)) | ||
655 | fetcher.unpack(self.unpackdir) | 571 | fetcher.unpack(self.unpackdir) |
572 | revision = bb.process.run("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git")[0].strip() | ||
573 | self.assertEqual(revision, "270a05b0b4ba0959fe0624d2a4885d7b70426da5") | ||
574 | |||
575 | self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1") | ||
576 | self.d.setVar("SRCREV", "270a05b0b4ba0959fe0624d2a4885d7b70426da5") | ||
577 | fetcher = bb.fetch.Fetch([url1], self.d) | ||
578 | fetcher.download() | ||
579 | checkrevision(self, fetcher) | ||
580 | # Wipe out the dldir clone and the unpacked source, turn off the network and check mirror tarball works | ||
581 | bb.utils.prunedir(self.dldir + "/git2/") | ||
582 | bb.utils.prunedir(self.unpackdir) | ||
583 | self.d.setVar("BB_NO_NETWORK", "1") | ||
584 | fetcher = bb.fetch.Fetch([url2], self.d) | ||
585 | fetcher.download() | ||
586 | checkrevision(self, fetcher) | ||
587 | |||
588 | @skipIfNoNetwork() | ||
589 | def test_gitfetch(self): | ||
590 | url1 = url2 = "git://git.openembedded.org/bitbake" | ||
591 | self.gitfetcher(url1, url2) | ||
592 | |||
593 | @skipIfNoNetwork() | ||
594 | def test_gitfetch_goodsrcrev(self): | ||
595 | # SRCREV is set but matches rev= parameter | ||
596 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
597 | self.gitfetcher(url1, url2) | ||
598 | |||
599 | @skipIfNoNetwork() | ||
600 | def test_gitfetch_badsrcrev(self): | ||
601 | # SRCREV is set but does not match rev= parameter | ||
602 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=dead05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
603 | self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2) | ||
604 | |||
605 | @skipIfNoNetwork() | ||
606 | def test_gitfetch_tagandrev(self): | ||
607 | # SRCREV is set but does not match rev= parameter | ||
608 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5;tag=270a05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
609 | self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2) | ||
610 | |||
611 | @skipIfNoNetwork() | ||
612 | def test_gitfetch_localusehead(self): | ||
613 | # Create dummy local Git repo | ||
614 | src_dir = tempfile.mkdtemp(dir=self.tempdir, | ||
615 | prefix='gitfetch_localusehead_') | ||
616 | src_dir = os.path.abspath(src_dir) | ||
617 | bb.process.run("git init", cwd=src_dir) | ||
618 | bb.process.run("git commit --allow-empty -m'Dummy commit'", | ||
619 | cwd=src_dir) | ||
620 | # Use other branch than master | ||
621 | bb.process.run("git checkout -b my-devel", cwd=src_dir) | ||
622 | bb.process.run("git commit --allow-empty -m'Dummy commit 2'", | ||
623 | cwd=src_dir) | ||
624 | stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir) | ||
625 | orig_rev = stdout[0].strip() | ||
626 | |||
627 | # Fetch and check revision | ||
628 | self.d.setVar("SRCREV", "AUTOINC") | ||
629 | url = "git://" + src_dir + ";protocol=file;usehead=1" | ||
630 | fetcher = bb.fetch.Fetch([url], self.d) | ||
631 | fetcher.download() | ||
632 | fetcher.unpack(self.unpackdir) | ||
633 | stdout = bb.process.run("git rev-parse HEAD", | ||
634 | cwd=os.path.join(self.unpackdir, 'git')) | ||
635 | unpack_rev = stdout[0].strip() | ||
636 | self.assertEqual(orig_rev, unpack_rev) | ||
637 | |||
638 | @skipIfNoNetwork() | ||
639 | def test_gitfetch_remoteusehead(self): | ||
640 | url = "git://git.openembedded.org/bitbake;usehead=1" | ||
641 | self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url) | ||
642 | |||
643 | @skipIfNoNetwork() | ||
644 | def test_gitfetch_premirror(self): | ||
645 | url1 = "git://git.openembedded.org/bitbake" | ||
646 | url2 = "git://someserver.org/bitbake" | ||
647 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | ||
648 | self.gitfetcher(url1, url2) | ||
649 | |||
650 | @skipIfNoNetwork() | ||
651 | def test_gitfetch_premirror2(self): | ||
652 | url1 = url2 = "git://someserver.org/bitbake" | ||
653 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | ||
654 | self.gitfetcher(url1, url2) | ||
655 | |||
656 | @skipIfNoNetwork() | ||
657 | def test_gitfetch_premirror3(self): | ||
658 | realurl = "git://git.openembedded.org/bitbake" | ||
659 | dummyurl = "git://someserver.org/bitbake" | ||
660 | self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git") | ||
661 | os.chdir(self.tempdir) | ||
662 | bb.process.run("git clone %s %s 2> /dev/null" % (realurl, self.sourcedir), shell=True) | ||
663 | self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file \n" % (dummyurl, self.sourcedir)) | ||
664 | self.gitfetcher(dummyurl, dummyurl) | ||
665 | |||
666 | @skipIfNoNetwork() | ||
667 | def test_git_submodule(self): | ||
668 | fetcher = bb.fetch.Fetch(["gitsm://git.yoctoproject.org/git-submodule-test;rev=f12e57f2edf0aa534cf1616fa983d165a92b0842"], self.d) | ||
669 | fetcher.download() | ||
670 | # Previous cwd has been deleted | ||
671 | os.chdir(os.path.dirname(self.unpackdir)) | ||
672 | fetcher.unpack(self.unpackdir) | ||
656 | 673 | ||
657 | 674 | ||
658 | class TrustedNetworksTest(FetcherTest): | 675 | class TrustedNetworksTest(FetcherTest): |
@@ -782,32 +799,32 @@ class FetchLatestVersionTest(FetcherTest): | |||
782 | ("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html", "http://download.oracle.com/otn/berkeley-db/(?P<name>db-)(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz") | 799 | ("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html", "http://download.oracle.com/otn/berkeley-db/(?P<name>db-)(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz") |
783 | : "6.1.19", | 800 | : "6.1.19", |
784 | } | 801 | } |
785 | if os.environ.get("BB_SKIP_NETTESTS") == "yes": | 802 | |
786 | print("Unset BB_SKIP_NETTESTS to run network tests") | 803 | @skipIfNoNetwork() |
787 | else: | 804 | def test_git_latest_versionstring(self): |
788 | def test_git_latest_versionstring(self): | 805 | for k, v in self.test_git_uris.items(): |
789 | for k, v in self.test_git_uris.items(): | 806 | self.d.setVar("PN", k[0]) |
790 | self.d.setVar("PN", k[0]) | 807 | self.d.setVar("SRCREV", k[2]) |
791 | self.d.setVar("SRCREV", k[2]) | 808 | self.d.setVar("UPSTREAM_CHECK_GITTAGREGEX", k[3]) |
792 | self.d.setVar("UPSTREAM_CHECK_GITTAGREGEX", k[3]) | 809 | ud = bb.fetch2.FetchData(k[1], self.d) |
793 | ud = bb.fetch2.FetchData(k[1], self.d) | 810 | pupver= ud.method.latest_versionstring(ud, self.d) |
794 | pupver= ud.method.latest_versionstring(ud, self.d) | 811 | verstring = pupver[0] |
795 | verstring = pupver[0] | 812 | self.assertTrue(verstring, msg="Could not find upstream version") |
796 | self.assertTrue(verstring, msg="Could not find upstream version") | 813 | r = bb.utils.vercmp_string(v, verstring) |
797 | r = bb.utils.vercmp_string(v, verstring) | 814 | self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring)) |
798 | self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring)) | 815 | |
799 | 816 | @skipIfNoNetwork() | |
800 | def test_wget_latest_versionstring(self): | 817 | def test_wget_latest_versionstring(self): |
801 | for k, v in self.test_wget_uris.items(): | 818 | for k, v in self.test_wget_uris.items(): |
802 | self.d.setVar("PN", k[0]) | 819 | self.d.setVar("PN", k[0]) |
803 | self.d.setVar("UPSTREAM_CHECK_URI", k[2]) | 820 | self.d.setVar("UPSTREAM_CHECK_URI", k[2]) |
804 | self.d.setVar("UPSTREAM_CHECK_REGEX", k[3]) | 821 | self.d.setVar("UPSTREAM_CHECK_REGEX", k[3]) |
805 | ud = bb.fetch2.FetchData(k[1], self.d) | 822 | ud = bb.fetch2.FetchData(k[1], self.d) |
806 | pupver = ud.method.latest_versionstring(ud, self.d) | 823 | pupver = ud.method.latest_versionstring(ud, self.d) |
807 | verstring = pupver[0] | 824 | verstring = pupver[0] |
808 | self.assertTrue(verstring, msg="Could not find upstream version") | 825 | self.assertTrue(verstring, msg="Could not find upstream version") |
809 | r = bb.utils.vercmp_string(v, verstring) | 826 | r = bb.utils.vercmp_string(v, verstring) |
810 | self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring)) | 827 | self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring)) |
811 | 828 | ||
812 | 829 | ||
813 | class FetchCheckStatusTest(FetcherTest): | 830 | class FetchCheckStatusTest(FetcherTest): |
@@ -827,33 +844,30 @@ class FetchCheckStatusTest(FetcherTest): | |||
827 | "https://github.com/kergoth/tslib/releases/download/1.1/tslib-1.1.tar.xz" | 844 | "https://github.com/kergoth/tslib/releases/download/1.1/tslib-1.1.tar.xz" |
828 | ] | 845 | ] |
829 | 846 | ||
830 | if os.environ.get("BB_SKIP_NETTESTS") == "yes": | 847 | @skipIfNoNetwork() |
831 | print("Unset BB_SKIP_NETTESTS to run network tests") | 848 | def test_wget_checkstatus(self): |
832 | else: | 849 | fetch = bb.fetch2.Fetch(self.test_wget_uris, self.d) |
833 | 850 | for u in self.test_wget_uris: | |
834 | def test_wget_checkstatus(self): | 851 | ud = fetch.ud[u] |
835 | fetch = bb.fetch2.Fetch(self.test_wget_uris, self.d) | 852 | m = ud.method |
836 | for u in self.test_wget_uris: | 853 | ret = m.checkstatus(fetch, ud, self.d) |
837 | ud = fetch.ud[u] | 854 | self.assertTrue(ret, msg="URI %s, can't check status" % (u)) |
838 | m = ud.method | ||
839 | ret = m.checkstatus(fetch, ud, self.d) | ||
840 | self.assertTrue(ret, msg="URI %s, can't check status" % (u)) | ||
841 | 855 | ||
856 | @skipIfNoNetwork() | ||
857 | def test_wget_checkstatus_connection_cache(self): | ||
858 | from bb.fetch2 import FetchConnectionCache | ||
842 | 859 | ||
843 | def test_wget_checkstatus_connection_cache(self): | 860 | connection_cache = FetchConnectionCache() |
844 | from bb.fetch2 import FetchConnectionCache | 861 | fetch = bb.fetch2.Fetch(self.test_wget_uris, self.d, |
862 | connection_cache = connection_cache) | ||
845 | 863 | ||
846 | connection_cache = FetchConnectionCache() | 864 | for u in self.test_wget_uris: |
847 | fetch = bb.fetch2.Fetch(self.test_wget_uris, self.d, | 865 | ud = fetch.ud[u] |
848 | connection_cache = connection_cache) | 866 | m = ud.method |
867 | ret = m.checkstatus(fetch, ud, self.d) | ||
868 | self.assertTrue(ret, msg="URI %s, can't check status" % (u)) | ||
849 | 869 | ||
850 | for u in self.test_wget_uris: | 870 | connection_cache.close_connections() |
851 | ud = fetch.ud[u] | ||
852 | m = ud.method | ||
853 | ret = m.checkstatus(fetch, ud, self.d) | ||
854 | self.assertTrue(ret, msg="URI %s, can't check status" % (u)) | ||
855 | |||
856 | connection_cache.close_connections() | ||
857 | 871 | ||
858 | 872 | ||
859 | class GitMakeShallowTest(FetcherTest): | 873 | class GitMakeShallowTest(FetcherTest): |
@@ -972,15 +986,13 @@ class GitMakeShallowTest(FetcherTest): | |||
972 | self.make_shallow() | 986 | self.make_shallow() |
973 | self.assertRevCount(1) | 987 | self.assertRevCount(1) |
974 | 988 | ||
975 | if os.environ.get("BB_SKIP_NETTESTS") == "yes": | 989 | @skipIfNoNetwork() |
976 | print("Unset BB_SKIP_NETTESTS to run network tests") | 990 | def test_make_shallow_bitbake(self): |
977 | else: | 991 | self.git('remote add origin https://github.com/openembedded/bitbake') |
978 | def test_make_shallow_bitbake(self): | 992 | self.git('fetch --tags origin') |
979 | self.git('remote add origin https://github.com/openembedded/bitbake') | 993 | orig_revs = len(self.git('rev-list --all').splitlines()) |
980 | self.git('fetch --tags origin') | 994 | self.make_shallow(['refs/tags/1.10.0']) |
981 | orig_revs = len(self.git('rev-list --all').splitlines()) | 995 | self.assertRevCount(orig_revs - 1746, ['--all']) |
982 | self.make_shallow(['refs/tags/1.10.0']) | ||
983 | self.assertRevCount(orig_revs - 1746, ['--all']) | ||
984 | 996 | ||
985 | class GitShallowTest(FetcherTest): | 997 | class GitShallowTest(FetcherTest): |
986 | def setUp(self): | 998 | def setUp(self): |
@@ -1436,24 +1448,22 @@ class GitShallowTest(FetcherTest): | |||
1436 | with self.assertRaises(bb.fetch2.FetchError): | 1448 | with self.assertRaises(bb.fetch2.FetchError): |
1437 | self.fetch() | 1449 | self.fetch() |
1438 | 1450 | ||
1439 | if os.environ.get("BB_SKIP_NETTESTS") == "yes": | 1451 | @skipIfNoNetwork() |
1440 | print("Unset BB_SKIP_NETTESTS to run network tests") | 1452 | def test_bitbake(self): |
1441 | else: | 1453 | self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir) |
1442 | def test_bitbake(self): | 1454 | self.git('config core.bare true', cwd=self.srcdir) |
1443 | self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir) | 1455 | self.git('fetch', cwd=self.srcdir) |
1444 | self.git('config core.bare true', cwd=self.srcdir) | 1456 | |
1445 | self.git('fetch', cwd=self.srcdir) | 1457 | self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0') |
1446 | 1458 | # Note that the 1.10.0 tag is annotated, so this also tests | |
1447 | self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0') | 1459 | # reference of an annotated vs unannotated tag |
1448 | # Note that the 1.10.0 tag is annotated, so this also tests | 1460 | self.d.setVar('BB_GIT_SHALLOW_REVS', '1.10.0') |
1449 | # reference of an annotated vs unannotated tag | 1461 | |
1450 | self.d.setVar('BB_GIT_SHALLOW_REVS', '1.10.0') | 1462 | self.fetch_shallow() |
1451 | 1463 | ||
1452 | self.fetch_shallow() | 1464 | # Confirm that the history of 1.10.0 was removed |
1453 | 1465 | orig_revs = len(self.git('rev-list master', cwd=self.srcdir).splitlines()) | |
1454 | # Confirm that the history of 1.10.0 was removed | 1466 | revs = len(self.git('rev-list master').splitlines()) |
1455 | orig_revs = len(self.git('rev-list master', cwd=self.srcdir).splitlines()) | 1467 | self.assertNotEqual(orig_revs, revs) |
1456 | revs = len(self.git('rev-list master').splitlines()) | 1468 | self.assertRefs(['master', 'origin/master']) |
1457 | self.assertNotEqual(orig_revs, revs) | 1469 | self.assertRevCount(orig_revs - 1758) |
1458 | self.assertRefs(['master', 'origin/master']) | ||
1459 | self.assertRevCount(orig_revs - 1758) | ||