From: Sean Anderson <seanga2@gmail.com>
To: Tom Rini <trini@konsulko.com>, u-boot@lists.denx.de
Cc: "Simon Glass" <sjg@chromium.org>,
"Heinrich Schuchardt" <xypron.glpk@gmx.de>,
"Marek Behún" <marek.behun@nic.cz>, "Marek Vasut" <marex@denx.de>,
"Xavier Drudis Ferran" <xdrudis@tinet.cat>,
"Stefan Roese" <sr@denx.de>, "Pali Rohár" <pali@kernel.org>,
"Sean Anderson" <seanga2@gmail.com>
Subject: [PATCH v6 13/25] test: spl: Support testing LEGACY_LZMA filesystem images
Date: Sun, 5 Nov 2023 21:25:51 -0500 [thread overview]
Message-ID: <20231106022603.3405551-14-seanga2@gmail.com> (raw)
In-Reply-To: <20231106022603.3405551-1-seanga2@gmail.com>
These will soon be supported, so we need to be able to test it. Export the
lzma data and generally use the same process in spl_test_mmc_fs as
do_spl_test_load. If we end up needing this in third place in the future,
it would probably be good to refactor things out.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
---
Changes in v6:
- New
include/test/spl.h | 4 ++++
test/image/spl_load.c | 4 +++-
test/image/spl_load_fs.c | 23 ++++++++++++++++++-----
3 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/include/test/spl.h b/include/test/spl.h
index c1f64658502..a2a5f33e328 100644
--- a/include/test/spl.h
+++ b/include/test/spl.h
@@ -81,6 +81,10 @@ size_t create_image(void *dst, enum spl_test_image type,
int check_image_info(struct unit_test_state *uts, struct spl_image_info *info1,
struct spl_image_info *info2);
+/* Some compressed data and it size */
+extern const char lzma_compressed[];
+extern const size_t lzma_compressed_size;
+
/**
* typedef write_image_t - Callback for writing an image
* @uts: Current unit test state
diff --git a/test/image/spl_load.c b/test/image/spl_load.c
index 35ceed67756..e1036eff28c 100644
--- a/test/image/spl_load.c
+++ b/test/image/spl_load.c
@@ -374,7 +374,7 @@ SPL_IMG_TEST(spl_test_image, FIT_EXTERNAL, 0);
* LZMA is too complex to generate on the fly, so let's use some data I put in
* the oven^H^H^H^H compressed earlier
*/
-static const char lzma_compressed[] = {
+const char lzma_compressed[] = {
0x5d, 0x00, 0x00, 0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x00, 0x02, 0x05, 0x55, 0x4e, 0x82, 0xbc, 0xc2, 0x42, 0xf6, 0x88,
0x6c, 0x99, 0xd6, 0x82, 0x48, 0xa6, 0x06, 0x67, 0xf8, 0x46, 0x7c, 0xe9,
@@ -610,6 +610,8 @@ static const char lzma_compressed[] = {
0x1e, 0xff, 0xff, 0x80, 0x8e, 0x00, 0x00
};
+const size_t lzma_compressed_size = sizeof(lzma_compressed);
+
int do_spl_test_load(struct unit_test_state *uts, const char *test_name,
enum spl_test_image type, struct spl_image_loader *loader,
int (*write_image)(struct unit_test_state *, void *, size_t))
diff --git a/test/image/spl_load_fs.c b/test/image/spl_load_fs.c
index 297ab08a820..59d0244d44b 100644
--- a/test/image/spl_load_fs.c
+++ b/test/image/spl_load_fs.c
@@ -320,10 +320,11 @@ static int spl_test_mmc_fs(struct unit_test_state *uts, const char *test_name,
const char *filename = CONFIG_SPL_FS_LOAD_PAYLOAD_NAME;
struct blk_desc *dev_desc;
size_t fs_size, fs_data, img_size, img_data,
- data_size = SPL_TEST_DATA_SIZE;
+ plain_size = SPL_TEST_DATA_SIZE;
struct spl_image_info info_write = {
.name = test_name,
- .size = data_size,
+ .size = type == LEGACY_LZMA ? lzma_compressed_size :
+ plain_size,
}, info_read = { };
struct disk_partition part = {
.start = 1,
@@ -335,7 +336,7 @@ static int spl_test_mmc_fs(struct unit_test_state *uts, const char *test_name,
.boot_device = loader->boot_device,
};
void *fs;
- char *data;
+ char *data, *plain;
img_size = create_image(NULL, type, &info_write, &img_data);
ut_assert(img_size);
@@ -345,7 +346,15 @@ static int spl_test_mmc_fs(struct unit_test_state *uts, const char *test_name,
ut_assertnonnull(fs);
data = fs + fs_data + img_data;
- generate_data(data, data_size, test_name);
+ if (type == LEGACY_LZMA) {
+ plain = malloc(plain_size);
+ ut_assertnonnull(plain);
+ generate_data(plain, plain_size, "lzma");
+ memcpy(data, lzma_compressed, lzma_compressed_size);
+ } else {
+ plain = data;
+ generate_data(plain, plain_size, test_name);
+ }
ut_asserteq(img_size, create_image(fs + fs_data, type, &info_write,
NULL));
ut_asserteq(fs_size, create_fs(fs, img_size, filename, NULL));
@@ -366,8 +375,12 @@ static int spl_test_mmc_fs(struct unit_test_state *uts, const char *test_name,
ut_assertok(loader->load_image(&info_read, &bootdev));
if (check_image_info(uts, &info_write, &info_read))
return CMD_RET_FAILURE;
- ut_asserteq_mem(data, phys_to_virt(info_write.load_addr), data_size);
+ if (type == LEGACY_LZMA)
+ ut_asserteq(plain_size, info_read.size);
+ ut_asserteq_mem(plain, phys_to_virt(info_write.load_addr), plain_size);
+ if (type == LEGACY_LZMA)
+ free(plain);
free(fs);
return 0;
}
--
2.37.1
next prev parent reply other threads:[~2023-11-06 3:00 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-06 2:25 [PATCH v6 00/25] spl: Use common function for loading/parsing images Sean Anderson
2023-11-06 2:25 ` [PATCH v6 01/25] spl: blk_fs: Fix uninitialized return value when we can't get a blk_desc Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 02/25] arm: Disable SPL_FS_FAT when it isn't used Sean Anderson
2023-11-06 6:58 ` Michal Simek
2023-11-06 2:25 ` [PATCH v6 03/25] spl: Make SHOW_ERRORS depend on LIBCOMMON Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 04/25] spl: semihosting: Don't close fd before spl_load_simple_fit Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 05/25] spl: Remove NULL assignments in spl_load_info Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-08 15:30 ` Sean Anderson
2023-11-06 2:25 ` [PATCH v6 06/25] spl: Remove dev from spl_load_info Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-08 16:19 ` Sean Anderson
2023-11-06 2:25 ` [PATCH v6 07/25] spl: Take advantage of bl_len's power-of-twoness Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 08/25] spl: Refactor spl_load_info->read to use units of bytes Sean Anderson
2023-11-06 12:35 ` Xavier Drudis Ferran
2023-11-06 13:54 ` Sean Anderson
2023-11-07 8:49 ` Xavier Drudis Ferran
2023-11-08 15:59 ` Sean Anderson
2023-11-09 6:24 ` Xavier Drudis Ferran
2023-11-06 2:25 ` [PATCH v6 09/25] spl: Remove filename from spl_load_info Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-08 15:34 ` Sean Anderson
2023-11-06 2:25 ` [PATCH v6 10/25] spl: Only support bl_len when we have to Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 11/25] spl: nand: Remove spl_nand_legacy_read Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 12/25] spl: legacy: Split off LZMA decompression into its own function Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` Sean Anderson [this message]
2023-11-08 4:23 ` [PATCH v6 13/25] test: spl: Support testing LEGACY_LZMA filesystem images Simon Glass
2023-11-06 2:25 ` [PATCH v6 14/25] spl: Add generic spl_load function Sean Anderson
2023-11-08 4:23 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 15/25] spl: Convert ext to use spl_load Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-08 15:37 ` Sean Anderson
2023-11-06 2:25 ` [PATCH v6 16/25] spl: Convert fat to spl_load Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-08 15:49 ` Sean Anderson
2023-11-06 2:25 ` [PATCH v6 17/25] spl: Convert mmc " Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 18/25] spl: Convert nand " Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 19/25] spl: Convert net " Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 20/25] spl: Convert nor " Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:25 ` [PATCH v6 21/25] spl: Convert NVMe " Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:26 ` [PATCH v6 22/25] spl: Convert semihosting " Sean Anderson
2023-11-06 2:26 ` [PATCH v6 23/25] spl: Convert spi " Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:26 ` [PATCH v6 24/25] spl: spi: Consolidate spi_load_image_os into spl_spi_load_image Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 2:26 ` [PATCH v6 25/25] spl: fat: Add option to disable DMA alignment Sean Anderson
2023-11-08 4:24 ` Simon Glass
2023-11-06 7:49 ` [PATCH v6 00/25] spl: Use common function for loading/parsing images Pali Rohár
2023-11-06 9:18 ` Heinrich Schuchardt
2023-11-06 10:12 ` Marek Behún
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231106022603.3405551-14-seanga2@gmail.com \
--to=seanga2@gmail.com \
--cc=marek.behun@nic.cz \
--cc=marex@denx.de \
--cc=pali@kernel.org \
--cc=sjg@chromium.org \
--cc=sr@denx.de \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=xdrudis@tinet.cat \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox