pmbootstrap-meow/pmb/commands/test.py
Caleb Connolly 62d700c3d8
commands: add pmbootstrap test (MR 2252)
This is to serve as a place to dump useful internal tests, starting with
one that simply parses all available APKINDEX files.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-23 12:38:40 +02:00

35 lines
923 B
Python

# Copyright 2024 Caleb Connolly
# SPDX-License-Identifier: GPL-3.0-or-later
from __future__ import annotations
from typing import Any, Dict, List
from pmb import commands, logging
import pmb.helpers.repo
import pmb.parse.apkindex
from pmb.core.arch import Arch
import time
"""Various internal test commands for performance testing and debugging."""
def apkindex_parse_all():
indexes = pmb.helpers.repo.apkindex_files(Arch.native())
pkgs = 0
indxs = len(indexes)
start = time.time()
for index in indexes:
ret = pmb.parse.apkindex.parse(index)
pkgs += len(ret)
end = time.time()
logging.info(f"Parsed {pkgs} packages from {indxs} APKINDEX files in {end - start:.3f} seconds")
class Test(commands.Command):
def __init__(self, action: str):
self.action = action
def run(self):
if self.action == "apkindex_parse_all":
apkindex_parse_all()