All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v2 1/2] libs/libltpnewipc: Add libnewmsgctl.c
Date: Thu, 16 Jul 2020 09:07:52 +0800	[thread overview]
Message-ID: <a955f851-5632-d8ec-725c-6e2f01a1a119@cn.fujitsu.com> (raw)
In-Reply-To: <96be4c61-2163-527a-3981-f442812fcba0@cn.fujitsu.com>

Hi!
Does anyone have some comment for this patch set?

Best Regards
Yang Xu
> Hi
> If we convert msgstress test cases into new api with using 
> libnewmsgctl.c, the old libmsgctl.c is useless and we can remove them.
> 
> Best Regards
> Yang Xu
>> From: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
>>
>> Add libnewmsgctl.c into ltp new ipc libs, so the upcoming msgstress 
>> cleanup cases
>> can use doreader/dowirter functions such as old libmsgctl.c does.
>>
>> Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
>> ---
>> ? include/libnewmsgctl.h?????????? |? 22 +++++++
>> ? libs/libltpnewipc/libnewmsgctl.c | 102 +++++++++++++++++++++++++++++++
>> ? 2 files changed, 124 insertions(+)
>> ? create mode 100644 include/libnewmsgctl.h
>> ? create mode 100644 libs/libltpnewipc/libnewmsgctl.c
>>
>> diff --git a/include/libnewmsgctl.h b/include/libnewmsgctl.h
>> new file mode 100644
>> index 000000000..e48a04277
>> --- /dev/null
>> +++ b/include/libnewmsgctl.h
>> @@ -0,0 +1,22 @@
>> +// SPDX-License-Identifier: GPL-2.0-or-later
>> +/*
>> + * Copyright (c) 2020 FUJITSU LIMITED. All rights reserved.
>> + */
>> +
>> +#ifndef __LIBNEWMSGCTL_H__
>> +#define __LIBNEWMSGCTL_H__
>> +
>> +struct mbuffer {
>> +??? long type;
>> +??? struct {
>> +??????? char len;
>> +??????? char pbytes[99];
>> +??? } data;
>> +};
>> +
>> +void doreader(long key, int tid, long type, int child, int nreps);
>> +void dowriter(long key, int tid, long type, int child, int nreps);
>> +void fill_buffer(char *buf, char val, int size);
>> +int verify(char *buf, char val, int size, int child);
>> +
>> +#endif /*__LIBNEWMSGCTL_H__ */
>> diff --git a/libs/libltpnewipc/libnewmsgctl.c 
>> b/libs/libltpnewipc/libnewmsgctl.c
>> new file mode 100644
>> index 000000000..1f6eed74a
>> --- /dev/null
>> +++ b/libs/libltpnewipc/libnewmsgctl.c
>> @@ -0,0 +1,102 @@
>> +// SPDX-License-Identifier: GPL-2.0-or-later
>> +/*
>> + * Copyright (c) 2020 FUJITSU LIMITED. All rights reserved.
>> + */
>> +
>> +#include <errno.h>
>> +#include <stdio.h>
>> +#include <stdlib.h>
>> +#include <string.h>
>> +#include <sys/stat.h>
>> +#include <sys/types.h>
>> +#include <sys/ipc.h>
>> +#include <sys/msg.h>
>> +
>> +#define TST_NO_DEFAULT_MAIN
>> +#include "tst_test.h"
>> +#include "tst_safe_sysv_ipc.h"
>> +#include "libnewmsgctl.h"
>> +
>> +void doreader(long key, int tid, long type, int child, int nreps)
>> +{
>> +??? int i, size;
>> +??? int id;
>> +??? struct mbuffer buffer;
>> +
>> +??? id = SAFE_MSGGET(key, 0);
>> +??? if (id != tid) {
>> +??????? tst_res(TFAIL,
>> +??????????? "Message queue mismatch in the reader of child group %d 
>> for message queue id %d\n",
>> +??????????? child, id);
>> +??????? return;
>> +??? }
>> +??? for (i = 0; i < nreps; i++) {
>> +??????? memset(&buffer, 0, sizeof(buffer));
>> +
>> +??????? size = SAFE_MSGRCV(id, &buffer, 100, type, 0);
>> +??????? if (buffer.type != type) {
>> +??????????? tst_res(TFAIL, "Type mismatch in child %d, read #%d, for 
>> message got %ld, exected %ld",
>> +??????????????? child, (i + 1), buffer.type, type);
>> +??????????? return;
>> +??????? }
>> +??????? if (buffer.data.len + 1 != size) {
>> +??????????? tst_res(TFAIL, "Size mismatch in child %d, read #%d, for 
>> message got %d, expected %d",
>> +??????????????? child, (i + 1), buffer.data.len + 1, size);
>> +??????????? return;
>> +??????? }
>> +??????? if (verify(buffer.data.pbytes, (key % 255), size - 1, child)) {
>> +??????????? tst_res(TFAIL, "Verify failed in child %d read # = %d, 
>> key = %lx\n",
>> +??????????????? child, (i + 1), key);
>> +??????????? return;
>> +??????? }
>> +??????? key++;
>> +??? }
>> +}
>> +
>> +void dowriter(long key, int tid, long type, int child, int nreps)
>> +{
>> +??? int i, size;
>> +??? int id;
>> +??? struct mbuffer buffer;
>> +
>> +??? id = SAFE_MSGGET(key, 0);
>> +??? if (id != tid) {
>> +??????? tst_res(TFAIL, "Message queue mismatch in the reader of child 
>> group %d for message queue id %d\n",
>> +??????????? child, id);
>> +??????? return;
>> +??? }
>> +
>> +??? for (i = 0; i < nreps; i++) {
>> +??????? memset(&buffer, 0, sizeof(buffer));
>> +
>> +??????? do {
>> +??????????? size = (lrand48() % 99);
>> +??????? } while (size == 0);
>> +??????? fill_buffer(buffer.data.pbytes, (key % 255), size);
>> +??????? buffer.data.len = size;
>> +??????? buffer.type = type;
>> +??????? SAFE_MSGSND(id, &buffer, size + 1, 0);
>> +??????? key++;
>> +??? }
>> +}
>> +
>> +void fill_buffer(char *buf, char val, int size)
>> +{
>> +??? int i;
>> +
>> +??? for (i = 0; i < size; i++)
>> +??????? buf[i] = val;
>> +}
>> +
>> +/* Check a buffer for correct values */
>> +int verify(char *buf, char val, int size, int child)
>> +{
>> +??? while (size-- > 0) {
>> +??????? if (*buf++ != val) {
>> +??????????? tst_res(TFAIL, "Verify error in child %d, *buf = %x, val 
>> = %x, size = %d\n",
>> +??????????????? child, *buf, val, size);
>> +??????????? return 1;
>> +??????? }
>> +??? }
>> +??? return 0;
>> +}
>>



  reply	other threads:[~2020-07-16  1:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-18  9:41 [LTP] [PATCH v2 1/2] libs/libltpnewipc: Add libnewmsgctl.c Yang Xu
2020-06-18  9:41 ` [LTP] [PATCH v2 2/2] syscalls/msgstress: scale number of processes accodingly to available RAM Yang Xu
2020-07-22 15:45   ` Cyril Hrubis
2020-07-23  6:34     ` Yang Xu
2020-10-21 12:57     ` [LTP] [PATCH v3 1/4] syscalls/msgstress: Add common file for msgstress Yang Xu
2020-10-21 12:57       ` [LTP] [PATCH v3 2/4] syscalls/msgstress*: cleanup and convert into new api Yang Xu
2020-11-11 16:31         ` Cyril Hrubis
2021-03-12 12:02           ` [LTP] [PATCH v4 1/5] libs/libltpnewipc/libnewipc.c: Add msg_do_reader/msg_do_writer function Yang Xu
2021-03-12 12:02             ` [LTP] [PATCH v4 2/5] syscalls/msgstress01: Convert into new api and merge msgstress03 into it Yang Xu
2021-07-21 15:07               ` Cyril Hrubis
2021-03-12 12:02             ` [LTP] [PATCH v4 3/5] syscalls/msgstress02: Convert into new api Yang Xu
2021-07-21 15:33               ` Cyril Hrubis
2021-03-12 12:02             ` [LTP] [PATCH v4 4/5] sycalls/msgstress04: " Yang Xu
2021-07-21 15:35               ` Cyril Hrubis
2021-03-12 12:02             ` [LTP] [PATCH v4 5/5] libs/libltpipc: Remove useless function and c file Yang Xu
2021-07-21 14:27             ` [LTP] [PATCH v4 1/5] libs/libltpnewipc/libnewipc.c: Add msg_do_reader/msg_do_writer function Cyril Hrubis
2021-07-21 15:29             ` Cyril Hrubis
2020-10-21 12:57       ` [LTP] [PATCH v3 3/4] libmsgctl: Remove it Yang Xu
2020-10-21 12:57       ` [LTP] [PATCH v3 4/4] lipipc: Remove useless get_max_msgqueues api Yang Xu
2020-11-11 15:44       ` [LTP] [PATCH v3 1/4] syscalls/msgstress: Add common file for msgstress Cyril Hrubis
2020-11-13  6:14         ` Yang Xu
2020-11-13 15:26           ` Cyril Hrubis
2020-06-24  5:04 ` [LTP] [PATCH v2 1/2] libs/libltpnewipc: Add libnewmsgctl.c Yang Xu
2020-07-16  1:07   ` Yang Xu [this message]
2020-07-22 15:01 ` Cyril Hrubis
2020-07-23  6:29   ` Yang Xu

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=a955f851-5632-d8ec-725c-6e2f01a1a119@cn.fujitsu.com \
    --to=xuyang2018.jy@cn.fujitsu.com \
    --cc=ltp@lists.linux.it \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.