* [PATCH] bios-tables-test: don't disassemble empty files
@ 2021-10-19 10:12 Michael S. Tsirkin
2021-10-19 10:14 ` Michael S. Tsirkin
0 siblings, 1 reply; 2+ messages in thread
From: Michael S. Tsirkin @ 2021-10-19 10:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Ani Sinha, Igor Mammedov
A recommended way to populate new tables is to have an
empty expected file. In this case, attempts to disassemble
will fail but it is useful to disassemble the actual files.
Detect and skip decompile step in this case.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
tests/qtest/bios-tables-test.c | 32 +++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index a5546180b7..ee0ddb088e 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -271,19 +271,28 @@ static void dump_aml_files(test_data *data, bool rebuild)
}
}
+static bool create_tmp_asl(AcpiSdtTable *sdt)
+{
+ GError *error = NULL;
+ gint fd;
+
+ fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
+ g_assert_no_error(error);
+ close(fd);
+
+ return false;
+}
+
static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
{
AcpiSdtTable *temp;
GError *error = NULL;
GString *command_line = g_string_new(iasl);
- gint fd;
gchar *out, *out_err;
gboolean ret;
int i;
- fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
- g_assert_no_error(error);
- close(fd);
+ create_tmp_asl(sdt);
/* build command line */
g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
@@ -463,11 +472,20 @@ static void test_acpi_asl(test_data *data)
err = load_asl(data->tables, sdt);
asl = normalize_asl(sdt->asl);
- exp_err = load_asl(exp_data.tables, exp_sdt);
- exp_asl = normalize_asl(exp_sdt->asl);
+ /*
+ * If expected file is empty - it's likely that it was a stub just
+ * created for step 1 above: we do want to decompile the actual one.
+ */
+ if (exp_sdt->aml_len) {
+ exp_err = load_asl(exp_data.tables, exp_sdt);
+ exp_asl = normalize_asl(exp_sdt->asl);
+ } else {
+ exp_err = create_tmp_asl(exp_sdt);
+ GString *asl = g_string_new("");
+ }
/* TODO: check for warnings */
- g_assert(!err || exp_err);
+ g_assert(!err || exp_err || !exp_sdt->aml_len);
if (g_strcmp0(asl->str, exp_asl->str)) {
sdt->tmp_files_retain = true;
--
MST
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] bios-tables-test: don't disassemble empty files
2021-10-19 10:12 [PATCH] bios-tables-test: don't disassemble empty files Michael S. Tsirkin
@ 2021-10-19 10:14 ` Michael S. Tsirkin
0 siblings, 0 replies; 2+ messages in thread
From: Michael S. Tsirkin @ 2021-10-19 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: Ani Sinha, Igor Mammedov
On Tue, Oct 19, 2021 at 06:12:52AM -0400, Michael S. Tsirkin wrote:
> A recommended way to populate new tables is to have an
> empty expected file. In this case, attempts to disassemble
> will fail but it is useful to disassemble the actual files.
> Detect and skip decompile step in this case.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
sorry fat fingers. sent too soon.
> ---
> tests/qtest/bios-tables-test.c | 32 +++++++++++++++++++++++++-------
> 1 file changed, 25 insertions(+), 7 deletions(-)
>
> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> index a5546180b7..ee0ddb088e 100644
> --- a/tests/qtest/bios-tables-test.c
> +++ b/tests/qtest/bios-tables-test.c
> @@ -271,19 +271,28 @@ static void dump_aml_files(test_data *data, bool rebuild)
> }
> }
>
> +static bool create_tmp_asl(AcpiSdtTable *sdt)
> +{
> + GError *error = NULL;
> + gint fd;
> +
> + fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
> + g_assert_no_error(error);
> + close(fd);
> +
> + return false;
> +}
> +
> static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
> {
> AcpiSdtTable *temp;
> GError *error = NULL;
> GString *command_line = g_string_new(iasl);
> - gint fd;
> gchar *out, *out_err;
> gboolean ret;
> int i;
>
> - fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
> - g_assert_no_error(error);
> - close(fd);
> + create_tmp_asl(sdt);
>
> /* build command line */
> g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
> @@ -463,11 +472,20 @@ static void test_acpi_asl(test_data *data)
> err = load_asl(data->tables, sdt);
> asl = normalize_asl(sdt->asl);
>
> - exp_err = load_asl(exp_data.tables, exp_sdt);
> - exp_asl = normalize_asl(exp_sdt->asl);
> + /*
> + * If expected file is empty - it's likely that it was a stub just
> + * created for step 1 above: we do want to decompile the actual one.
> + */
> + if (exp_sdt->aml_len) {
> + exp_err = load_asl(exp_data.tables, exp_sdt);
> + exp_asl = normalize_asl(exp_sdt->asl);
> + } else {
> + exp_err = create_tmp_asl(exp_sdt);
> + GString *asl = g_string_new("");
> + }
>
> /* TODO: check for warnings */
> - g_assert(!err || exp_err);
> + g_assert(!err || exp_err || !exp_sdt->aml_len);
>
> if (g_strcmp0(asl->str, exp_asl->str)) {
> sdt->tmp_files_retain = true;
> --
> MST
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-10-19 10:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-19 10:12 [PATCH] bios-tables-test: don't disassemble empty files Michael S. Tsirkin
2021-10-19 10:14 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).