[libcamera-devel] [PATCH 2/3] test: file-descriptor: Add "fd move" constructor test
Niklas Söderlund
niklas.soderlund at ragnatech.se
Tue May 19 15:44:38 CEST 2020
Hi Laurent,
Thanks for your patch.
On 2020-05-18 19:48:03 +0300, Laurent Pinchart wrote:
> Add a test for the newly added "fd move" constructor.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> test/file-descriptor.cpp | 42 ++++++++++++++++++++++++++++++++++++----
> 1 file changed, 38 insertions(+), 4 deletions(-)
>
> diff --git a/test/file-descriptor.cpp b/test/file-descriptor.cpp
> index 7477a843531c..aa3c896fb937 100644
> --- a/test/file-descriptor.cpp
> +++ b/test/file-descriptor.cpp
> @@ -56,16 +56,19 @@ protected:
> delete desc1_;
> desc1_ = nullptr;
>
> - /* Test creating FileDescriptor from numerical file descriptor. */
> + /*
> + * Test creating FileDescriptor by copying numerical file
> + * descriptor.
> + */
> desc1_ = new FileDescriptor(fd_);
> if (desc1_->fd() == fd_) {
> - std::cout << "Failed fd numerical check (int constructor)"
> + std::cout << "Failed fd numerical check (lvalue ref constructor)"
> << std::endl;
> return TestFail;
> }
>
> if (!isValidFd(fd_) || !isValidFd(desc1_->fd())) {
> - std::cout << "Failed fd validity after construction (int constructor)"
> + std::cout << "Failed fd validity after construction (lvalue ref constructor)"
> << std::endl;
> return TestFail;
> }
> @@ -76,7 +79,38 @@ protected:
> desc1_ = nullptr;
>
> if (!isValidFd(fd_) || isValidFd(fd)) {
> - std::cout << "Failed fd validity after destruction (int constructor)"
> + std::cout << "Failed fd validity after destruction (lvalue ref constructor)"
> + << std::endl;
> + return TestFail;
> + }
> +
> + /*
> + * Test creating FileDescriptor by taking ownership of
> + * numerical file descriptor.
> + */
> + int dupFd = dup(fd_);
> + int dupFdCopy = dupFd;
> +
> + desc1_ = new FileDescriptor(std::move(dupFd));
> + if (desc1_->fd() != dupFdCopy) {
> + std::cout << "Failed fd numerical check (rvalue ref constructor)"
> + << std::endl;
> + return TestFail;
> + }
> +
> + if (dupFd != -1 || !isValidFd(fd_) || !isValidFd(desc1_->fd())) {
> + std::cout << "Failed fd validity after construction (rvalue ref constructor)"
> + << std::endl;
> + return TestFail;
> + }
> +
> + fd = desc1_->fd();
> +
> + delete desc1_;
> + desc1_ = nullptr;
> +
> + if (!isValidFd(fd_) || isValidFd(fd)) {
> + std::cout << "Failed fd validity after destruction (rvalue ref constructor)"
> << std::endl;
> return TestFail;
> }
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list