#
684f9120 |
| 29-Sep-2022 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9p: split virtio-9p-test.c into tests and 9p client part
This patch is pure refactoring, it does not change behaviour.
virtio-9p-test.c grew to 1657 lines. Let's split this file up between ac
tests/9p: split virtio-9p-test.c into tests and 9p client part
This patch is pure refactoring, it does not change behaviour.
virtio-9p-test.c grew to 1657 lines. Let's split this file up between actual 9p test cases vs. 9p test client, to make it easier to concentrate on the actual 9p tests.
Move the 9p test client code to a new unit virtio-9p-client.c, which are basically all functions and types prefixed with v9fs_* already.
Note that some client wrapper functions (do_*) are preserved in virtio-9p-test.c, simply because these wrapper functions are going to be wiped with subsequent patches anyway.
As the global QGuestAllocator variable is moved to virtio-9p-client.c, add a new function v9fs_set_allocator() to be used by virtio-9p-test.c instead of fiddling with a global variable across units and libraries.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <E1odrya-0004Fv-97@lizzy.crudebyte.com>
show more ...
|
#
0e43495d |
| 15-Mar-2022 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: check fid being unaffected in fs_walk_2nd_nonexistent
Extend previously added test case by checking that fid was unaffected by 'Twalk' request (i.e. when 2nd path component of request be
tests/9pfs: check fid being unaffected in fs_walk_2nd_nonexistent
Extend previously added test case by checking that fid was unaffected by 'Twalk' request (i.e. when 2nd path component of request being invalid). Do that by subsequently sending a 'Tgetattr' request with the fid previously used for 'Twalk'; that 'Tgetattr' request should return an 'Rlerror' response by 9p server with error code ENOENT as that fid is basically invalid.
And as we are at it, also check that the QID returned by 'Twalk' is not identical to the root node's QID.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <6f0813cafdbf683cdac8b1492dd4ef8699c5b1d9.1647339025.git.qemu_oss@crudebyte.com>
show more ...
|
#
15fbff48 |
| 15-Mar-2022 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: guard recent 'Twalk' behaviour fix
Previous 9p patch fixed 'Twalk' request handling, which was previously not behaving as specified by the 9p2000 protocol spec. This patch adds a new tes
tests/9pfs: guard recent 'Twalk' behaviour fix
Previous 9p patch fixed 'Twalk' request handling, which was previously not behaving as specified by the 9p2000 protocol spec. This patch adds a new test case which guards the new 'Twalk' behaviour in question.
More specifically: it sends a 'Twalk' request where the 1st path component is valid, whereas the 2nd path component transmitted to server does not exist. The expected behaviour is that 9p server would respond by sending a 'Rwalk' response with exactly 1 QID (instead of 'Rlerror' response).
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <61bde2f44b87e24b70ec098dfb81765665b2dfcb.1647339025.git.qemu_oss@crudebyte.com>
show more ...
|
#
a6821b82 |
| 15-Mar-2022 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: compare QIDs in fs_walk_none() test
Extend previously added fs_walk_none() test by comparing the QID of the root fid with the QID of the cloned fid. They should be equal.
Signed-off-by:
tests/9pfs: compare QIDs in fs_walk_none() test
Extend previously added fs_walk_none() test by comparing the QID of the root fid with the QID of the cloned fid. They should be equal.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <5bbe9c6931b4600a9a23742f5ff2d38c1188237d.1647339025.git.qemu_oss@crudebyte.com>
show more ...
|
#
c1668948 |
| 15-Mar-2022 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: Twalk with nwname=0
Send Twalk request with nwname=0. In this case no QIDs should be returned by 9p server; this is equivalent to walking to dot.
Signed-off-by: Christian Schoenebeck <q
tests/9pfs: Twalk with nwname=0
Send Twalk request with nwname=0. In this case no QIDs should be returned by 9p server; this is equivalent to walking to dot.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <b5ead2775000203607801f09bcefc04c493d8bfa.1647339025.git.qemu_oss@crudebyte.com>
show more ...
|
#
9472a689 |
| 15-Mar-2022 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: walk to non-existent dir
Expect ENOENT Rlerror response when trying to walk to a non-existent directory.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg
tests/9pfs: walk to non-existent dir
Expect ENOENT Rlerror response when trying to walk to a non-existent directory.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Based-on: <E1nTpyU-0000yR-9o@lizzy.crudebyte.com> Message-Id: <1f5aa50ace3ba3861ea31e8888367518282065a6.1647339025.git.qemu_oss@crudebyte.com>
show more ...
|
#
1366244a |
| 15-Mar-2022 |
Markus Armbruster <armbru@redhat.com> |
9pfs: Use g_new() & friends where that makes obvious sense
g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, for two reasons. One, it catches multiplication overflowing size_t.
9pfs: Use g_new() & friends where that makes obvious sense
g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, for two reasons. One, it catches multiplication overflowing size_t. Two, it returns T * rather than void *, which lets the compiler catch more type errors.
This commit only touches allocations with size arguments of the form sizeof(T).
Initial patch created mechanically with:
$ spatch --in-place --sp-file scripts/coccinelle/use-g_new-etc.cocci \ --macro-file scripts/cocci-macro-file.h FILES...
This uncovers a typing error:
../hw/9pfs/9p.c: In function ‘qid_path_fullmap’: ../hw/9pfs/9p.c:855:13: error: assignment to ‘QpfEntry *’ from incompatible pointer type ‘QppEntry *’ [-Werror=incompatible-pointer-types] 855 | val = g_new0(QppEntry, 1); | ^
Harmless, because QppEntry is larger than QpfEntry. Manually fixed to allocate a QpfEntry instead.
Cc: Greg Kurz <groug@kaod.org> Cc: Christian Schoenebeck <qemu_oss@crudebyte.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <20220315144156.1595462-3-armbru@redhat.com>
show more ...
|
#
d3671fd9 |
| 27-Feb-2022 |
Will Cohen <wwcohen@gmail.com> |
9p: darwin: Adjust assumption on virtio-9p-test
The previous test depended on the assumption that P9_DOTL_AT_REMOVEDIR and AT_REMOVEDIR have the same value.
While this is true on Linux, it is not t
9p: darwin: Adjust assumption on virtio-9p-test
The previous test depended on the assumption that P9_DOTL_AT_REMOVEDIR and AT_REMOVEDIR have the same value.
While this is true on Linux, it is not true everywhere, and leads to an incorrect test failure on unlink_at, noticed when adding 9p to darwin:
Received response 7 (RLERROR) instead of 77 (RUNLINKAT) Rlerror has errno 22 (Invalid argument) **
ERROR:../tests/qtest/virtio-9p-test.c:305:v9fs_req_recv: assertion failed (hdr.id == id): (7 == 77) Bail out!
ERROR:../tests/qtest/virtio-9p-test.c:305:v9fs_req_recv: assertion failed (hdr.id == id): (7 == 77)
Signed-off-by: Fabian Franz <fabianfranz.oss@gmail.com> [Will Cohen: - Add explanation of patch and description of pre-patch test failure] Signed-off-by: Will Cohen <wwcohen@gmail.com> Acked-by: Thomas Huth <thuth@redhat.com> [Will Cohen: - Move this patch before 9p: darwin: meson patch to avoid qtest breakage during bisecting] Signed-off-by: Will Cohen <wwcohen@gmail.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <20220227223522.91937-11-wwcohen@gmail.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
65ceee0a |
| 16-Nov-2021 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: use g_autofree where possible
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <E1mn1fA-0005qZ-TM@lizzy.crudebyte.com>
|
#
6f569084 |
| 06-May-2021 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
9pfs: add link to 9p developer docs
To lower the entry level for new developers, add a link to the 9p developer docs (i.e. qemu wiki) to MAINTAINERS and to the beginning of 9p source files, that is
9pfs: add link to 9p developer docs
To lower the entry level for new developers, add a link to the 9p developer docs (i.e. qemu wiki) to MAINTAINERS and to the beginning of 9p source files, that is to: https://wiki.qemu.org/Documentation/9p
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Acked-by: Greg Kurz <groug@kaod.org> Message-Id: <E1leeDf-0008GZ-9q@lizzy.crudebyte.com>
show more ...
|
#
558f5c42 |
| 24-Nov-2020 |
Greg Kurz <groug@kaod.org> |
tests/9pfs: Mark "local" tests as "slow"
The "local" tests can fail on some automated build systems as reported here:
https://lists.nongnu.org/archive/html/qemu-devel/2020-11/msg05510.html
This wi
tests/9pfs: Mark "local" tests as "slow"
The "local" tests can fail on some automated build systems as reported here:
https://lists.nongnu.org/archive/html/qemu-devel/2020-11/msg05510.html
This will need to be investigated and addressed later. Let's go for a workaround in the meantime : mark the "local" tests as "slow" so that they aren't executed with a simple "make check" like in the case above.
Reported-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Greg Kurz <groug@kaod.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Acked-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Message-Id: <160620382310.1423262.7364287092069513483.stgit@bahia.lan> Signed-off-by: Greg Kurz <groug@kaod.org>
show more ...
|
#
4d0746e2 |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tunlinkat hard link test
This test case uses a Tunlinkat request to remove a previously hard linked file by using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoeneb
tests/9pfs: add local Tunlinkat hard link test
This test case uses a Tunlinkat request to remove a previously hard linked file by using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <9bec33a7d8f006ef8f80517985d0d6ac48650d53.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
64e3d403 |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tlink test
This test case uses a Tlink request to create a hard link to a regular file using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudeby
tests/9pfs: add local Tlink test
This test case uses a Tlink request to create a hard link to a regular file using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <f0d869770ad23ee5ce10f7da90fdb742cadcad72.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
5b28ab8b |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tunlinkat symlink test
This test case uses a Tunlinkat request to remove a symlink using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.c
tests/9pfs: add local Tunlinkat symlink test
This test case uses a Tunlinkat request to remove a symlink using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <a23cd4d2ab6d8d3048addab8cbf0416fe5ead43e.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
59ff563d |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tsymlink test
This test case uses a Tsymlink 9p request to create a symbolic link using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.co
tests/9pfs: add local Tsymlink test
This test case uses a Tsymlink 9p request to create a symbolic link using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <84ac76937855bf441242372cc3e62df42f0a3dc4.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
472c18b8 |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tunlinkat file test
This test case uses a Tunlinkat request to remove a regular file using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte
tests/9pfs: add local Tunlinkat file test
This test case uses a Tunlinkat request to remove a regular file using the 9pfs 'local' fs driver.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <4eabeed7f662721dd5664cb77fe36ea0aa08b1ec.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
b09dbfdd |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tlcreate test
This test case uses a Tlcreate 9p request to create a regular file inside host's test directory.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Re
tests/9pfs: add local Tlcreate test
This test case uses a Tlcreate 9p request to create a regular file inside host's test directory.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <269cae0c00af941a3a4ae78f1e319f93462a7eb4.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
b37d62d6 |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: add local Tunlinkat directory test
This test case uses a Tunlinkat 9p request with flag AT_REMOVEDIR (see 'man 2 unlink') to remove a directory from host's test directory.
Signed-off-by
tests/9pfs: add local Tunlinkat directory test
This test case uses a Tunlinkat 9p request with flag AT_REMOVEDIR (see 'man 2 unlink') to remove a directory from host's test directory.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <3c7c65b476ba44bea6afd0b378b5287e1c671a32.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
20018805 |
| 21-Oct-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: simplify do_mkdir()
Split out walking a directory path to a separate new utility function do_walk() and use that function in do_mkdir().
The code difference saved this way is not much,
tests/9pfs: simplify do_mkdir()
Split out walking a directory path to a separate new utility function do_walk() and use that function in do_mkdir().
The code difference saved this way is not much, but we'll use that new do_walk() function in the upcoming patches, so it will avoid quite some code duplication after all.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <4d7275b2363f122438a443ce079cbb355285e9d6.1603285620.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
c1934f63 |
| 20-Oct-2020 |
Greg Kurz <groug@kaod.org> |
tests/9pfs: Turn fs_mkdir() into a helper
fs_mkdir() isn't a top level test function and thus shouldn't take the "void *obj, void *data, QGuestAllocator *t_alloc" arguments. Turn it into a helper to
tests/9pfs: Turn fs_mkdir() into a helper
fs_mkdir() isn't a top level test function and thus shouldn't take the "void *obj, void *data, QGuestAllocator *t_alloc" arguments. Turn it into a helper to be used by test functions.
Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160321018148.266767.15959608711038504029.stgit@bahia.lan> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
1d98613d |
| 20-Oct-2020 |
Greg Kurz <groug@kaod.org> |
tests/9pfs: Turn fs_readdir_split() into a helper
fs_readdir_split() isn't a top level test function and thus shouldn't take the "void *obj, void *data, QGuestAllocator *t_alloc" arguments. Turn it
tests/9pfs: Turn fs_readdir_split() into a helper
fs_readdir_split() isn't a top level test function and thus shouldn't take the "void *obj, void *data, QGuestAllocator *t_alloc" arguments. Turn it into a helper to be used by test functions.
Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160321016084.266767.9501523425012383531.stgit@bahia.lan> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
3fe4baf4 |
| 20-Oct-2020 |
Greg Kurz <groug@kaod.org> |
tests/9pfs: Factor out do_attach() helper
fs_attach() is a top level test function. Factor out the reusable code to a separate helper instead of hijacking it in other tests.
Signed-off-by: Greg Kur
tests/9pfs: Factor out do_attach() helper
fs_attach() is a top level test function. Factor out the reusable code to a separate helper instead of hijacking it in other tests.
Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160321017450.266767.17377192504263871186.stgit@bahia.lan> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
382619ef |
| 20-Oct-2020 |
Greg Kurz <groug@kaod.org> |
tests/9pfs: Set alloc in fs_create_dir()
fs_create_dir() is a top level test function. It should set alloc.
Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160321016764.266767.37632790576438
tests/9pfs: Set alloc in fs_create_dir()
fs_create_dir() is a top level test function. It should set alloc.
Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160321016764.266767.3763279057643874020.stgit@bahia.lan> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
1c450e6e |
| 20-Oct-2020 |
Greg Kurz <groug@kaod.org> |
tests/9pfs: Factor out do_version() helper
fs_version() is a top level test function. Factor out the reusable code to a separate helper instead of hijacking it in other tests.
Signed-off-by: Greg K
tests/9pfs: Factor out do_version() helper
fs_version() is a top level test function. Factor out the reusable code to a separate helper instead of hijacking it in other tests.
Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160321015403.266767.4533967728943968456.stgit@bahia.lan> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|
#
136b7af2 |
| 01-Nov-2020 |
Christian Schoenebeck <qemu_oss@crudebyte.com> |
tests/9pfs: fix test dir for parallel tests
Use mkdtemp() to generate a unique directory for the 9p 'local' tests.
This fixes occasional 9p test failures when running 'make check -jN' if QEMU was c
tests/9pfs: fix test dir for parallel tests
Use mkdtemp() to generate a unique directory for the 9p 'local' tests.
This fixes occasional 9p test failures when running 'make check -jN' if QEMU was compiled for multiple target architectures, because the individual architecture's test suites would run in parallel and interfere with each other's data as the test directory was previously hard coded and hence the same directory was used by all of them simultaniously.
This also requires a change how the test directory is created and deleted: As the test path is now randomized and virtio_9p_register_nodes() being called in a somewhat undeterministic way, that's no longer an appropriate place to create and remove the test directory. Use a constructor and destructor function for creating and removing the test directory instead. Unfortunately libqos currently does not support setup/teardown callbacks to handle this more cleanly.
The constructor functions needs to be in virtio-9p-test.c, not in virtio-9p.c, because in the latter location it would cause all apps that link to libqos (i.e. entirely unrelated test suites) to create a 9pfs test directory as well, which would even break other test suites.
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Greg Kurz <groug@kaod.org> Tested-by: Greg Kurz <groug@kaod.org> Message-Id: <7746f42d8f557593898d3d9d8e57c46e872dfb4f.1604243521.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
show more ...
|