[{"id":2216,"web_url":"https://patchwork.libcamera.org/comment/2216/","msgid":"<20190711054812.GL1557@wyvern>","date":"2019-07-11T05:48:12","subject":"Re: [libcamera-devel] [PATCH 5/6] test: Add Message test case","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your test.\n\nOn 2019-07-10 22:17:07 +0300, Laurent Pinchart wrote:\n> The Message class test creates a receiver inheriting from Object, moves\n> it to a different thread, sends a message to the receiver and verifies\n> that the message is delivered in the correct thread.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  test/meson.build |  1 +\n>  test/message.cpp | 88 ++++++++++++++++++++++++++++++++++++++++++++++++\n>  2 files changed, 89 insertions(+)\n>  create mode 100644 test/message.cpp\n> \n> diff --git a/test/meson.build b/test/meson.build\n> index bd0e0d98f0e7..1f87319aeb65 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -21,6 +21,7 @@ public_tests = [\n>  \n>  internal_tests = [\n>      ['camera-sensor',                   'camera-sensor.cpp'],\n> +    ['message',                         'message.cpp'],\n>      ['threads',                         'threads.cpp'],\n>  ]\n>  \n> diff --git a/test/message.cpp b/test/message.cpp\n> new file mode 100644\n> index 000000000000..de98da3e8754\n> --- /dev/null\n> +++ b/test/message.cpp\n> @@ -0,0 +1,88 @@\n> +/* SPDX-License-Identifier: GPL-2.0-or-later */\n> +/*\n> + * Copyright (C) 2019, Google Inc.\n> + *\n> + * message.cpp - Messages test\n> + */\n> +\n> +#include <chrono>\n> +#include <iostream>\n> +#include <thread>\n> +\n> +#include \"message.h\"\n> +#include \"thread.h\"\n> +#include \"test.h\"\n> +#include \"utils.h\"\n> +\n> +using namespace std;\n> +using namespace libcamera;\n> +\n> +class MessageReceiver : public Object\n> +{\n> +public:\n> +\tenum Status {\n> +\t\tNoMessage,\n> +\t\tInvalidThread,\n> +\t\tMessageReceived,\n> +\t};\n> +\n> +\tMessageReceiver()\n> +\t\t: status_(NoMessage)\n> +\t{\n> +\t}\n> +\n> +\tStatus status() const { return status_; }\n> +\tvoid reset() { status_ = NoMessage; }\n> +\n> +protected:\n> +\tvoid message(Message *msg)\n> +\t{\n> +\t\tif (thread() != Thread::current())\n> +\t\t\tstatus_ = InvalidThread;\n> +\t\telse\n> +\t\t\tstatus_ = MessageReceived;\n> +\t}\n> +\n> +private:\n> +\tStatus status_;\n> +};\n> +\n> +class MessageTest : public Test\n> +{\n> +protected:\n> +\tint run()\n> +\t{\n> +\t\tMessageReceiver receiver;\n> +\t\treceiver.moveToThread(&thread_);\n> +\n> +\t\tthread_.start();\n> +\n> +\t\treceiver.postMessage(utils::make_unique<Message>(Message::None));\n> +\n> +\t\tthis_thread::sleep_for(chrono::milliseconds(100));\n> +\n> +\t\tswitch (receiver.status()) {\n> +\t\tcase MessageReceiver::NoMessage:\n> +\t\t\tcout << \"No message received\" << endl;\n> +\t\t\treturn TestFail;\n> +\t\tcase MessageReceiver::InvalidThread:\n> +\t\t\tcout << \"Message received in incorrect thread\" << endl;\n> +\t\t\treturn TestFail;\n> +\t\tdefault:\n> +\t\t\tbreak;\n> +\t\t}\n> +\n> +\t\treturn TestPass;\n> +\t}\n> +\n> +\tvoid cleanup()\n> +\t{\n> +\t\tthread_.exit(0);\n> +\t\tthread_.wait();\n> +\t}\n> +\n> +private:\n> +\tThread thread_;\n> +};\n> +\n> +TEST_REGISTER(MessageTest)\n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-pg1-x542.google.com (mail-pg1-x542.google.com\n\t[IPv6:2607:f8b0:4864:20::542])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DAE2B60C23\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 11 Jul 2019 07:48:16 +0200 (CEST)","by mail-pg1-x542.google.com with SMTP id i8so2341724pgm.13\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Jul 2019 22:48:16 -0700 (PDT)","from localhost (softbank126163157105.bbtec.net. [126.163.157.105])\n\tby smtp.gmail.com with ESMTPSA id\n\tv13sm6696091pfn.109.2019.07.10.22.48.14\n\t(version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);\n\tWed, 10 Jul 2019 22:48:14 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=YtxGeCEF/axWfpp7krPC0aXb1koPzl2nYtrnulr26n4=;\n\tb=k1DGVZuqk+pmJKdHve2kiW3xCdLZtubmGgWSUs22lbd53bHJbzlk93RPitEI86Kv0F\n\t3fCE+28mTVDeIKglQFtYT0m+M4IosUwKvy7Olbqpmk1hBCyoBX8GhLH9195bAPy44z5J\n\ty5+9VlTwv25Xj/1w0GBWG14Tn2mnbTxmXMQu41tSLVh38Honv9kMlkxIfjIcgCmh78MH\n\tJ0liMNnXznP2ef247w7MF0RjSex6CtgAGNW9gEtjOANqFeHHEvMyeIV5z8TP+6yrmi2z\n\tVRO83cHy15HWgZzFDcinAbBuUyVZbFG+Izg9uSDgRwdJe6EnMj3MibrSdYeBNJb+/IBR\n\tnUYQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=YtxGeCEF/axWfpp7krPC0aXb1koPzl2nYtrnulr26n4=;\n\tb=uLnHVilZ37xZqVJ/+cuja/bcib6ZbwuXY0t5e48HM63R6CYwu6yVGLynwT6E0nCuTp\n\tf7sf+1Xs8sasIzw5pjs+eOAIZrQCUjQMioGtRV1k94LOyYrzfoK6xUP2NmhNzWywSg9d\n\tlCNkfjsEzWsnlAPNAvOS2mLQ0DDLygRcb4lmEoksbooC8TzBMGpomhz7Xs5YfUQwhBt+\n\tIbOa9tiKASV49DHGh85fE5RxzqUjz+EJLTqRpZSI5N3op/VEs73zEbYPn1w122aQDuFB\n\tmWP+rKnVdethYNuBdkeqEi6jDRzrew4hLWSXUzTdeKY3vXmOXbchERMesEGjMfm5l0P4\n\t3U9A==","X-Gm-Message-State":"APjAAAW+eIxshnzhp/1EU6BMBbh8T9rJiUaOqPLRyH3loMudzen1iiJg\n\t9u8U6yxCNkjBlI5Og6VjY2y5aeS9xHc=","X-Google-Smtp-Source":"APXvYqxFZBR1gZdEsu72d0phGbBqPYICHgRn4hRY7twkBtGjH5KDTWReWWSuhNg63tILTUp4yRi/Hg==","X-Received":"by 2002:a63:5c15:: with SMTP id\n\tq21mr2547338pgb.248.1562824095605; \n\tWed, 10 Jul 2019 22:48:15 -0700 (PDT)","Date":"Thu, 11 Jul 2019 14:48:12 +0900","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190711054812.GL1557@wyvern>","References":"<20190710191708.13049-1-laurent.pinchart@ideasonboard.com>\n\t<20190710191708.13049-5-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190710191708.13049-5-laurent.pinchart@ideasonboard.com>","User-Agent":"Mutt/1.12.1 (2019-06-15)","Subject":"Re: [libcamera-devel] [PATCH 5/6] test: Add Message test case","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Thu, 11 Jul 2019 05:48:17 -0000"}}]