MCPcopy Create free account
hub / github.com/archlinux/alpm / package_entry_iterator

Function package_entry_iterator

alpm-package/tests/integration.rs:973–1024  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

971// Ensure that the package entry iterator short-circuits after finding all known entries.
972#[test]
973fn package_entry_iterator() -> TestResult {
974 init_logger();
975
976 let temp_dir = TempDir::new()?;
977 let package = create_package(
978 &temp_dir,
979 &InputDirConfig {
980 build_info: true,
981 data_files: true,
982 mtree: true,
983 package_info: true,
984 scriptlet: true,
985 },
986 CompressionSettings::Xz {
987 compression_level: Default::default(),
988 },
989 )?;
990
991 let mut reader: PackageReader = package.clone().try_into()?;
992 let mut entries = reader.entries()?;
993
994 assert!(matches!(
995 assert_metadata_entry(entries.next())?,
996 MetadataEntry::BuildInfo(_)
997 ));
998 assert!(matches!(
999 entries.next(),
1000 Some(Ok(PackageEntry::InstallScriptlet(_)))
1001 ));
1002 assert!(matches!(
1003 assert_metadata_entry(entries.next())?,
1004 MetadataEntry::Mtree(_)
1005 ));
1006 assert!(matches!(
1007 assert_metadata_entry(entries.next())?,
1008 MetadataEntry::PackageInfo(_)
1009 ));
1010 // Make sure that the iterator no longer returns any values.
1011 // This should not advance the iterator, as all metadata files have been found.
1012 assert!(entries.next().is_none());
1013
1014 // Now test that the short-circuit of the iterator actually worked.
1015 // Get the underlying raw Entries iterator and make sure that this non-filtering iterator still
1016 // produces data files.
1017 let mut inner_iter = entries.into_inner();
1018 assert!(
1019 inner_iter.next().is_some(),
1020 "Expected the non-filtering iterator to still return a value."
1021 );
1022
1023 Ok(())
1024}
1025
1026// Ensure that the package entry iterator short-circuits even if install scriptlet is missing.
1027#[test]

Callers

nothing calls this directly

Calls 4

create_packageFunction · 0.85
init_loggerFunction · 0.70
entriesMethod · 0.45
into_innerMethod · 0.45

Tested by

no test coverage detected