[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 04/48] tests: add some qemu_strtosz() tests
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 04/48] tests: add some qemu_strtosz() tests |
Date: |
Tue, 22 Sep 2015 17:05:27 +0200 |
From: Marc-André Lureau <address@hidden>
While reading the function I decided to write some tests.
Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
tests/test-cutils.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
diff --git a/tests/test-cutils.c b/tests/test-cutils.c
index 0046c61..a3de6ab 100644
--- a/tests/test-cutils.c
+++ b/tests/test-cutils.c
@@ -1352,6 +1352,86 @@ static void test_qemu_strtoull_full_max(void)
g_assert_cmpint(res, ==, ULLONG_MAX);
}
+static void test_qemu_strtosz_simple(void)
+{
+ const char *str = "12345M";
+ char *endptr = NULL;
+ int64_t res;
+
+ res = qemu_strtosz(str, &endptr);
+ g_assert_cmpint(res, ==, 12345 * M_BYTE);
+ g_assert(endptr == str + 6);
+
+ res = qemu_strtosz(str, NULL);
+ g_assert_cmpint(res, ==, 12345 * M_BYTE);
+}
+
+static void test_qemu_strtosz_units(void)
+{
+ const char *none = "1";
+ const char *b = "1B";
+ const char *k = "1K";
+ const char *m = "1M";
+ const char *g = "1G";
+ const char *t = "1T";
+ const char *p = "1P";
+ const char *e = "1E";
+ int64_t res;
+
+ /* default is M */
+ res = qemu_strtosz(none, NULL);
+ g_assert_cmpint(res, ==, M_BYTE);
+
+ res = qemu_strtosz(b, NULL);
+ g_assert_cmpint(res, ==, 1);
+
+ res = qemu_strtosz(k, NULL);
+ g_assert_cmpint(res, ==, K_BYTE);
+
+ res = qemu_strtosz(m, NULL);
+ g_assert_cmpint(res, ==, M_BYTE);
+
+ res = qemu_strtosz(g, NULL);
+ g_assert_cmpint(res, ==, G_BYTE);
+
+ res = qemu_strtosz(t, NULL);
+ g_assert_cmpint(res, ==, T_BYTE);
+
+ res = qemu_strtosz(p, NULL);
+ g_assert_cmpint(res, ==, P_BYTE);
+
+ res = qemu_strtosz(e, NULL);
+ g_assert_cmpint(res, ==, E_BYTE);
+}
+
+static void test_qemu_strtosz_float(void)
+{
+ const char *str = "12.345M";
+ int64_t res;
+
+ res = qemu_strtosz(str, NULL);
+ g_assert_cmpint(res, ==, 12.345 * M_BYTE);
+}
+
+static void test_qemu_strtosz_erange(void)
+{
+ const char *str = "10E";
+ int64_t res;
+
+ res = qemu_strtosz(str, NULL);
+ g_assert_cmpint(res, ==, -ERANGE);
+}
+
+static void test_qemu_strtosz_suffix_unit(void)
+{
+ const char *str = "12345";
+ int64_t res;
+
+ res = qemu_strtosz_suffix_unit(str, NULL,
+ QEMU_STRTOSZ_DEFSUFFIX_KB, 1000);
+ g_assert_cmpint(res, ==, 12345000);
+}
+
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
@@ -1502,5 +1582,16 @@ int main(int argc, char **argv)
g_test_add_func("/cutils/qemu_strtoull_full/max",
test_qemu_strtoull_full_max);
+ g_test_add_func("/cutils/strtosz/simple",
+ test_qemu_strtosz_simple);
+ g_test_add_func("/cutils/strtosz/units",
+ test_qemu_strtosz_units);
+ g_test_add_func("/cutils/strtosz/float",
+ test_qemu_strtosz_float);
+ g_test_add_func("/cutils/strtosz/erange",
+ test_qemu_strtosz_erange);
+ g_test_add_func("/cutils/strtosz/suffix-unit",
+ test_qemu_strtosz_suffix_unit);
+
return g_test_run();
}
--
2.5.0
- [Qemu-devel] [PULL 00/48] Misc patches for 2015-09-22, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 01/48] nbd: convert to use the QAPI SocketAddress object, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 02/48] qemu-nbd: convert to use the QAPI SocketAddress object, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 04/48] tests: add some qemu_strtosz() tests,
Paolo Bonzini <=
- [Qemu-devel] [PULL 03/48] utils: rename strtosz to use qemu prefix, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 05/48] checkpatch: do not recommend qemu_strtok over strtok, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 07/48] Makefile: fix build when VPATH is outside GIT tree, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 06/48] scsi-generic: let guests recognize readonly=on on passthrough devices, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 08/48] vhost-scsi: include linux/vhost.h, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 10/48] MAINTAINERS: there is no PPC64 TCG backend anymore, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 09/48] get_maintainer.pl: \C is deprecated, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 11/48] MAINTAINERS: Add disassemblers to the various backends, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 12/48] MAINTAINERS: Add more s390 files, Paolo Bonzini, 2015/09/22
- [Qemu-devel] [PULL 15/48] MAINTAINERS: add more devices to the PCI section, Paolo Bonzini, 2015/09/22