|
1 | 1 | #include "base58.h"
|
2 | 2 | #include "compat/endian.h"
|
3 | 3 | #include "neuralnet/superblock.h"
|
| 4 | +#include "scraper_net.h" |
4 | 5 | #include "streams.h"
|
5 | 6 |
|
6 | 7 | #include <array>
|
@@ -432,22 +433,46 @@ ConvergedScraperStats GetTestConvergence(
|
432 | 433 | // Add a verified beacons project part. Technically, this is the second
|
433 | 434 | // part for a manifest (offset 1). We skipped adding the beacon list part.
|
434 | 435 | //
|
435 |
| - CDataStream verified_beacons_part(SER_NETWORK, PROTOCOL_VERSION); |
436 |
| - verified_beacons_part |
| 436 | + CDataStream verified_beacons_part_data(SER_NETWORK, PROTOCOL_VERSION); |
| 437 | + verified_beacons_part_data |
437 | 438 | << ScraperPendingBeaconMap {
|
438 | 439 | *stats.mVerifiedMap.begin(),
|
439 | 440 | *++stats.mVerifiedMap.begin(),
|
440 | 441 | };
|
441 | 442 |
|
442 |
| - convergence.Convergence.ConvergedManifestPartsMap.emplace( |
443 |
| - "VerifiedBeacons", |
444 |
| - CSerializeData(verified_beacons_part.begin() , verified_beacons_part.end())); |
| 443 | + CSplitBlob::CPart verified_beacons_part(Hash(verified_beacons_part_data.begin(), |
| 444 | + verified_beacons_part_data.end())); |
| 445 | + |
| 446 | + verified_beacons_part.data = CSerializeData(verified_beacons_part_data.begin() , verified_beacons_part_data.end()); |
| 447 | + |
| 448 | + //auto verified_beacons_part_ptr = std::make_shared<CSplitBlob::CPart>(verified_beacons_part); |
| 449 | + |
| 450 | + convergence.Convergence.ConvergedManifestPartPtrsMap.emplace("VerifiedBeacons", |
| 451 | + &verified_beacons_part); |
| 452 | + |
| 453 | + CDataStream project_1_part_data(SER_NETWORK, PROTOCOL_VERSION); |
| 454 | + project_1_part_data << "foo"; |
| 455 | + |
| 456 | + CSplitBlob::CPart project_1_part(Hash(project_1_part_data.begin(), project_1_part_data.end())); |
| 457 | + project_1_part.data = CSerializeData(project_1_part_data.begin(), project_1_part_data.end()); |
| 458 | + |
| 459 | + //auto project_1_part_ptr = std::make_shared<CSplitBlob::CPart>(project_1_part); |
| 460 | + |
| 461 | + |
| 462 | + CDataStream project_2_part_data(SER_NETWORK, PROTOCOL_VERSION); |
| 463 | + project_2_part_data << "fi"; |
| 464 | + |
| 465 | + CSplitBlob::CPart project_2_part(Hash(project_2_part_data.begin(), project_2_part_data.end())); |
| 466 | + project_2_part.data = CSerializeData(project_2_part_data.begin(), project_2_part_data.end()); |
| 467 | + |
| 468 | + //auto project_2_part_ptr = std::make_shared<CSplitBlob::CPart>(project_2_part); |
| 469 | + |
445 | 470 |
|
446 | 471 | // Add some project parts with the same names as the projects in the stats.
|
447 |
| - // The part data doesn't matter, so we just add empty containers. |
| 472 | + // The part data pointers don't matter, so we just add nullptrs. |
448 | 473 | //
|
449 |
| - convergence.Convergence.ConvergedManifestPartsMap.emplace("project_1", CSerializeData()); |
450 |
| - convergence.Convergence.ConvergedManifestPartsMap.emplace("project_2", CSerializeData()); |
| 474 | + convergence.Convergence.ConvergedManifestPartPtrsMap.emplace("project_1", &project_1_part); |
| 475 | + convergence.Convergence.ConvergedManifestPartPtrsMap.emplace("project_2", &project_2_part); |
451 | 476 |
|
452 | 477 | return convergence;
|
453 | 478 | }
|
@@ -847,7 +872,16 @@ BOOST_AUTO_TEST_CASE(it_checks_whether_it_was_created_from_fallback_convergence)
|
847 | 872 | BOOST_CHECK(superblock.ConvergedByProject() == false);
|
848 | 873 |
|
849 | 874 | superblock.m_projects.Add("project_name", NN::Superblock::ProjectStats());
|
850 |
| - superblock.m_projects.SetHint("project_name", CSerializeData()); |
| 875 | + |
| 876 | + CDataStream project_part_stream(SER_NETWORK, PROTOCOL_VERSION); |
| 877 | + project_part_stream << ""; |
| 878 | + |
| 879 | + CSerializeData project_part_data(project_part_stream.begin(), project_part_stream.end()); |
| 880 | + |
| 881 | + CSplitBlob::CPart project_part(Hash(project_part_data.begin(),project_part_data.end())); |
| 882 | + project_part.data = project_part_data; |
| 883 | + |
| 884 | + superblock.m_projects.SetHint("project_name", &project_part); |
851 | 885 |
|
852 | 886 | BOOST_CHECK(superblock.ConvergedByProject() == true);
|
853 | 887 | }
|
@@ -1613,7 +1647,16 @@ BOOST_AUTO_TEST_CASE(it_sets_a_project_part_convergence_hint)
|
1613 | 1647 | NN::Superblock::ProjectIndex projects;
|
1614 | 1648 |
|
1615 | 1649 | projects.Add("project_name", NN::Superblock::ProjectStats());
|
1616 |
| - projects.SetHint("project_name", CSerializeData()); |
| 1650 | + |
| 1651 | + CDataStream project_part_stream(SER_NETWORK, PROTOCOL_VERSION); |
| 1652 | + project_part_stream << ""; |
| 1653 | + |
| 1654 | + CSerializeData project_part_data(project_part_stream.begin(), project_part_stream.end()); |
| 1655 | + |
| 1656 | + CSplitBlob::CPart project_part(Hash(project_part_data.begin(),project_part_data.end())); |
| 1657 | + project_part.data = project_part_data; |
| 1658 | + |
| 1659 | + projects.SetHint("project_name", &project_part); |
1617 | 1660 |
|
1618 | 1661 | BOOST_CHECK(projects.m_converged_by_project == true);
|
1619 | 1662 |
|
@@ -1804,8 +1847,25 @@ BOOST_AUTO_TEST_CASE(it_serializes_to_a_stream_for_fallback_convergences)
|
1804 | 1847 | projects.Add("project_1", NN::Superblock::ProjectStats(1, 2, 3));
|
1805 | 1848 | projects.Add("project_2", NN::Superblock::ProjectStats(1, 2, 3));
|
1806 | 1849 |
|
1807 |
| - projects.SetHint("project_1", CSerializeData()); |
1808 |
| - projects.SetHint("project_2", CSerializeData()); |
| 1850 | + CDataStream project_1_part_stream(SER_NETWORK, PROTOCOL_VERSION); |
| 1851 | + project_1_part_stream << "foo"; |
| 1852 | + |
| 1853 | + CSerializeData project_1_part_data(project_1_part_stream.begin(), project_1_part_stream.end()); |
| 1854 | + |
| 1855 | + CSplitBlob::CPart project_1_part(Hash(project_1_part_data.begin(),project_1_part_data.end())); |
| 1856 | + project_1_part.data = project_1_part_data; |
| 1857 | + |
| 1858 | + projects.SetHint("project_1", &project_1_part); |
| 1859 | + |
| 1860 | + CDataStream project_2_part_stream(SER_NETWORK, PROTOCOL_VERSION); |
| 1861 | + project_2_part_stream << "fi"; |
| 1862 | + |
| 1863 | + CSerializeData project_2_part_data(project_2_part_stream.begin(), project_2_part_stream.end()); |
| 1864 | + |
| 1865 | + CSplitBlob::CPart project_2_part(Hash(project_2_part_data.begin(),project_2_part_data.end())); |
| 1866 | + project_2_part.data = project_2_part_data; |
| 1867 | + |
| 1868 | + projects.SetHint("project_2", &project_2_part); |
1809 | 1869 |
|
1810 | 1870 | BOOST_CHECK(GetSerializeSize(projects, SER_NETWORK, 1) == expected.size());
|
1811 | 1871 |
|
|
0 commit comments