diff options
Diffstat (limited to 'bitbake/lib/hashserv/tests.py')
-rw-r--r-- | bitbake/lib/hashserv/tests.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/bitbake/lib/hashserv/tests.py b/bitbake/lib/hashserv/tests.py index 0809453cf8..5349cd5867 100644 --- a/bitbake/lib/hashserv/tests.py +++ b/bitbake/lib/hashserv/tests.py | |||
@@ -594,6 +594,43 @@ class HashEquivalenceCommonTests(object): | |||
594 | 7: None, | 594 | 7: None, |
595 | }) | 595 | }) |
596 | 596 | ||
597 | def test_get_unihash_batch(self): | ||
598 | TEST_INPUT = ( | ||
599 | # taskhash outhash unihash | ||
600 | ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e','218e57509998197d570e2c98512d0105985dffc9'), | ||
601 | # Duplicated taskhash with multiple output hashes and unihashes. | ||
602 | ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'), | ||
603 | # Equivalent hash | ||
604 | ("044c2ec8aaf480685a00ff6ff49e6162e6ad34e1", '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', "def64766090d28f627e816454ed46894bb3aab36"), | ||
605 | ("e3da00593d6a7fb435c7e2114976c59c5fd6d561", "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a", "3b5d3d83f07f259e9086fcb422c855286e18a57d"), | ||
606 | ('35788efcb8dfb0a02659d81cf2bfd695fb30faf9', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2cd'), | ||
607 | ('35788efcb8dfb0a02659d81cf2bfd695fb30fafa', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2ce'), | ||
608 | ('9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74', '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69', '05d2a63c81e32f0a36542ca677e8ad852365c538'), | ||
609 | ) | ||
610 | EXTRA_QUERIES = ( | ||
611 | "6b6be7a84ab179b4240c4302518dc3f6", | ||
612 | ) | ||
613 | |||
614 | for taskhash, outhash, unihash in TEST_INPUT: | ||
615 | self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) | ||
616 | |||
617 | |||
618 | result = self.client.get_unihash_batch( | ||
619 | [(self.METHOD, data[0]) for data in TEST_INPUT] + | ||
620 | [(self.METHOD, e) for e in EXTRA_QUERIES] | ||
621 | ) | ||
622 | |||
623 | self.assertListEqual(result, [ | ||
624 | "218e57509998197d570e2c98512d0105985dffc9", | ||
625 | "218e57509998197d570e2c98512d0105985dffc9", | ||
626 | "218e57509998197d570e2c98512d0105985dffc9", | ||
627 | "3b5d3d83f07f259e9086fcb422c855286e18a57d", | ||
628 | "f46d3fbb439bd9b921095da657a4de906510d2cd", | ||
629 | "f46d3fbb439bd9b921095da657a4de906510d2cd", | ||
630 | "05d2a63c81e32f0a36542ca677e8ad852365c538", | ||
631 | None, | ||
632 | ]) | ||
633 | |||
597 | def test_client_pool_unihash_exists(self): | 634 | def test_client_pool_unihash_exists(self): |
598 | TEST_INPUT = ( | 635 | TEST_INPUT = ( |
599 | # taskhash outhash unihash | 636 | # taskhash outhash unihash |
@@ -636,6 +673,44 @@ class HashEquivalenceCommonTests(object): | |||
636 | result = client_pool.unihashes_exist(query) | 673 | result = client_pool.unihashes_exist(query) |
637 | self.assertDictEqual(result, expected) | 674 | self.assertDictEqual(result, expected) |
638 | 675 | ||
676 | def test_unihash_exists_batch(self): | ||
677 | TEST_INPUT = ( | ||
678 | # taskhash outhash unihash | ||
679 | ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e','218e57509998197d570e2c98512d0105985dffc9'), | ||
680 | # Duplicated taskhash with multiple output hashes and unihashes. | ||
681 | ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'), | ||
682 | # Equivalent hash | ||
683 | ("044c2ec8aaf480685a00ff6ff49e6162e6ad34e1", '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', "def64766090d28f627e816454ed46894bb3aab36"), | ||
684 | ("e3da00593d6a7fb435c7e2114976c59c5fd6d561", "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a", "3b5d3d83f07f259e9086fcb422c855286e18a57d"), | ||
685 | ('35788efcb8dfb0a02659d81cf2bfd695fb30faf9', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2cd'), | ||
686 | ('35788efcb8dfb0a02659d81cf2bfd695fb30fafa', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2ce'), | ||
687 | ('9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74', '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69', '05d2a63c81e32f0a36542ca677e8ad852365c538'), | ||
688 | ) | ||
689 | EXTRA_QUERIES = ( | ||
690 | "6b6be7a84ab179b4240c4302518dc3f6", | ||
691 | ) | ||
692 | |||
693 | result_unihashes = set() | ||
694 | |||
695 | |||
696 | for taskhash, outhash, unihash in TEST_INPUT: | ||
697 | result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) | ||
698 | result_unihashes.add(result["unihash"]) | ||
699 | |||
700 | query = [] | ||
701 | expected = [] | ||
702 | |||
703 | for _, _, unihash in TEST_INPUT: | ||
704 | query.append(unihash) | ||
705 | expected.append(unihash in result_unihashes) | ||
706 | |||
707 | |||
708 | for unihash in EXTRA_QUERIES: | ||
709 | query.append(unihash) | ||
710 | expected.append(False) | ||
711 | |||
712 | result = self.client.unihash_exists_batch(query) | ||
713 | self.assertListEqual(result, expected) | ||
639 | 714 | ||
640 | def test_auth_read_perms(self): | 715 | def test_auth_read_perms(self): |
641 | admin_client = self.start_auth_server() | 716 | admin_client = self.start_auth_server() |