summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/hashserv/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/hashserv/tests.py')
-rw-r--r--bitbake/lib/hashserv/tests.py75
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()