From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Yuanhan Liu" <yuanhan.liu@linux.intel.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?=
<marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [PULL 14/15] vhost-user-test: use tmpfs by default
Date: Fri, 2 Oct 2015 16:45:55 +0300 [thread overview]
Message-ID: <1443793405-15190-15-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1443793405-15190-1-git-send-email-mst@redhat.com>
Most people don't run make check by default, so they skip vhost-user
unit tests. Solve this by using tmpfs instead, unless hugetlbfs is
specified (using an environment variable).
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
tests/vhost-user-test.c | 37 +++++++++++++++++++++++++------------
1 file changed, 25 insertions(+), 12 deletions(-)
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 87281b9..5e63cbc 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -272,17 +272,11 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
g_mutex_unlock(&data_mutex);
}
-static const char *init_hugepagefs(void)
+static const char *init_hugepagefs(const char *path)
{
- const char *path;
struct statfs fs;
int ret;
- path = getenv("QTEST_HUGETLBFS_PATH");
- if (!path) {
- path = "/hugetlbfs";
- }
-
if (access(path, R_OK | W_OK | X_OK)) {
g_test_message("access on path (%s): %s\n", path, strerror(errno));
return NULL;
@@ -309,19 +303,31 @@ int main(int argc, char **argv)
{
QTestState *s = NULL;
CharDriverState *chr = NULL;
- const char *hugefs = 0;
+ const char *hugefs;
char *socket_path = 0;
char *qemu_cmd = 0;
char *chr_path = 0;
int ret;
+ char template[] = "/tmp/vhost-test-XXXXXX";
+ const char *tmpfs;
+ const char *root;
g_test_init(&argc, &argv, NULL);
module_call_init(MODULE_INIT_QOM);
- hugefs = init_hugepagefs();
- if (!hugefs) {
- return 0;
+ tmpfs = mkdtemp(template);
+ if (!tmpfs) {
+ g_test_message("mkdtemp on path (%s): %s\n", template, strerror(errno));
+ }
+ g_assert(tmpfs);
+
+ hugefs = getenv("QTEST_HUGETLBFS_PATH");
+ if (hugefs) {
+ root = init_hugepagefs(hugefs);
+ g_assert(root);
+ } else {
+ root = tmpfs;
}
socket_path = g_strdup_printf("/tmp/vhost-%d.sock", getpid());
@@ -338,7 +344,7 @@ int main(int argc, char **argv)
g_cond_init(&data_cond);
g_thread_new(NULL, thread_function, NULL);
- qemu_cmd = g_strdup_printf(QEMU_CMD, hugefs, socket_path);
+ qemu_cmd = g_strdup_printf(QEMU_CMD, root, socket_path);
s = qtest_start(qemu_cmd);
g_free(qemu_cmd);
@@ -354,5 +360,12 @@ int main(int argc, char **argv)
unlink(socket_path);
g_free(socket_path);
+ ret = rmdir(tmpfs);
+ if (ret != 0) {
+ g_test_message("unable to rmdir: path (%s): %s\n",
+ tmpfs, strerror(errno));
+ }
+ g_assert_cmpint(ret, ==, 0);
+
return ret;
}
--
MST
next prev parent reply other threads:[~2015-10-02 13:46 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-02 13:44 [Qemu-devel] [PULL 00/15] virtio,pc features, fixes Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 01/15] virtio: introduce virtqueue_unmap_sg() Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 02/15] virtio: introduce virtqueue_discard() Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 03/15] virtio-net: correctly drop truncated packets Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 04/15] oslib: rework anonimous RAM allocation Michael S. Tsirkin
2015-10-02 14:18 ` Eric Blake
2015-10-02 13:45 ` [Qemu-devel] [PULL 05/15] oslib: allocate PROT_NONE pages on top of RAM Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 06/15] exec: " Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 07/15] pc: Add a comment explaining why pc_compat_2_4() doesn't exist Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 08/15] virtio: Notice when the system doesn't support MSIx at all Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 09/15] virtio-9p: migrate virtio subsections Michael S. Tsirkin
2015-10-02 14:05 ` Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 10/15] vhost-user-test: do not reinvent glib-compat.h Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 11/15] vhost-user: unit test for new messages Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 12/15] memhp: extend address auto assignment to support gaps Michael S. Tsirkin
2015-10-02 13:45 ` [Qemu-devel] [PULL 13/15] pc: memhp: force gaps between DIMM's GPA Michael S. Tsirkin
2015-10-02 13:45 ` Michael S. Tsirkin [this message]
2015-10-05 22:39 ` [Qemu-devel] [PULL 14/15] vhost-user-test: use tmpfs by default Peter Maydell
2015-10-05 23:04 ` Michael S. Tsirkin
2015-10-05 23:17 ` Michael S. Tsirkin
2015-10-06 8:41 ` Peter Maydell
2015-10-06 11:07 ` Peter Maydell
2015-10-14 14:01 ` Marc-André Lureau
2015-10-02 13:46 ` [Qemu-devel] [PULL 15/15] vhost-user-test: fix predictable filename on tmpfs Michael S. Tsirkin
2015-10-02 14:06 ` [Qemu-devel] [PULL 00/15] virtio,pc features, fixes Michael S. Tsirkin
2015-10-02 16:06 ` Eric Blake
2015-10-02 16:27 ` Peter Maydell
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=1443793405-15190-15-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=yuanhan.liu@linux.intel.com \
/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;
as well as URLs for NNTP newsgroup(s).