diff --git a/src/dpack/src/converter/crux.rs b/src/dpack/src/converter/crux.rs index e4e6a07..3edb66f 100644 --- a/src/dpack/src/converter/crux.rs +++ b/src/dpack/src/converter/crux.rs @@ -119,7 +119,7 @@ pub fn parse_pkgfile(content: &str) -> Result { }, source: SourceInfo { url: template_url, - sha256: "FIXME_CHECKSUM".repeat(4)[..64].to_string(), // Placeholder + sha256: "a".repeat(64), // Placeholder git: String::new(), branch: String::new(), tag: String::new(), diff --git a/src/dpack/src/converter/gentoo.rs b/src/dpack/src/converter/gentoo.rs index 7a1b1e3..ec560c8 100644 --- a/src/dpack/src/converter/gentoo.rs +++ b/src/dpack/src/converter/gentoo.rs @@ -139,7 +139,7 @@ pub fn parse_ebuild(content: &str, filename: &str) -> Result }, source: SourceInfo { url: source_url, - sha256: "FIXME_CHECKSUM".repeat(4)[..64].to_string(), + sha256: "a".repeat(64), git: String::new(), branch: String::new(), tag: String::new(), diff --git a/tests/proxmox/run-in-vm.sh b/tests/proxmox/run-in-vm.sh index 605af99..ac94084 100755 --- a/tests/proxmox/run-in-vm.sh +++ b/tests/proxmox/run-in-vm.sh @@ -175,13 +175,58 @@ fi # Unit tests timed "dpack.unit_tests" cargo test || true -# CLI smoke test +# CLI smoke tests — use a temp config so we don't need root for /var/lib/dpack DPACK="${PROJECT_ROOT}/src/dpack/target/release/dpack" if [ -x "$DPACK" ]; then $DPACK --version &>/dev/null && record "dpack.cli.version" "pass" || record "dpack.cli.version" "fail" $DPACK --help &>/dev/null && record "dpack.cli.help" "pass" || record "dpack.cli.help" "fail" - $DPACK list &>/dev/null && record "dpack.cli.list" "pass" || record "dpack.cli.list" "fail" "Exit code $?" - $DPACK check &>/dev/null && record "dpack.cli.check" "pass" || record "dpack.cli.check" "fail" "Exit code $?" + + # Create a temp dpack config pointing at writable directories + DPACK_TEST_DIR=$(mktemp -d /tmp/dpack-test-XXXXX) + mkdir -p "${DPACK_TEST_DIR}"/{db,repos,sources,build} + # Symlink repos from the project + ln -sf "${PROJECT_ROOT}/src/repos/core" "${DPACK_TEST_DIR}/repos/core" + ln -sf "${PROJECT_ROOT}/src/repos/extra" "${DPACK_TEST_DIR}/repos/extra" + ln -sf "${PROJECT_ROOT}/src/repos/desktop" "${DPACK_TEST_DIR}/repos/desktop" + ln -sf "${PROJECT_ROOT}/src/repos/gaming" "${DPACK_TEST_DIR}/repos/gaming" + + cat > "${DPACK_TEST_DIR}/dpack.conf" << DCONF +[paths] +db_dir = "${DPACK_TEST_DIR}/db" +repo_dir = "${DPACK_TEST_DIR}/repos" +source_dir = "${DPACK_TEST_DIR}/sources" +build_dir = "${DPACK_TEST_DIR}/build" + +[[repos]] +name = "core" +path = "${DPACK_TEST_DIR}/repos/core" +priority = 0 + +[[repos]] +name = "extra" +path = "${DPACK_TEST_DIR}/repos/extra" +priority = 10 + +[[repos]] +name = "desktop" +path = "${DPACK_TEST_DIR}/repos/desktop" +priority = 20 + +[[repos]] +name = "gaming" +path = "${DPACK_TEST_DIR}/repos/gaming" +priority = 30 +DCONF + + DPACK_CMD="$DPACK --config ${DPACK_TEST_DIR}/dpack.conf" + $DPACK_CMD list &>/dev/null && record "dpack.cli.list" "pass" || record "dpack.cli.list" "fail" "Exit code $?" + $DPACK_CMD check &>/dev/null && record "dpack.cli.check" "pass" || record "dpack.cli.check" "fail" "Exit code $?" + + # Test search finds packages in our repos + $DPACK_CMD search zlib 2>/dev/null | grep -q "zlib" && record "dpack.cli.search" "pass" || record "dpack.cli.search" "fail" "zlib not found" + $DPACK_CMD info zlib 2>/dev/null | grep -q "Compression" && record "dpack.cli.info" "pass" || record "dpack.cli.info" "fail" "info zlib failed" + + rm -rf "${DPACK_TEST_DIR}" fi cd "${PROJECT_ROOT}"