Skip to content

Commit

Permalink
set_tid_address01: refactor with new LTP API
Browse files Browse the repository at this point in the history
Link: https://lore.kernel.org/ltp/[email protected]/
Reviewed-by: Avinesh Kumar <[email protected]>
Reviewed-by: Petr Vorel <[email protected]>
Signed-off-by: Ma Xinjian <[email protected]>
[ pvorel: shorten with TST_EXP_VAL() ]
Signed-off-by: Petr Vorel <[email protected]>
  • Loading branch information
MaXinjian authored and pevik committed Jan 10, 2025
1 parent 5b2fff7 commit 082f096
Showing 1 changed file with 19 additions and 123 deletions.
142 changes: 19 additions & 123 deletions testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
Original file line number Diff line number Diff line change
@@ -1,129 +1,25 @@
/******************************************************************************/
/* Copyright (c) Crackerjack Project., 2007 */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License, or */
/* (at your option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */
/* the GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program; if not, write to the Free Software */
/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
/* */
/******************************************************************************/
/******************************************************************************/
/* */
/* File: set_tid_address01.c */
/* */
/* Description: This tests the set_tid_address() syscall */
/* */
/* Usage: <for command-line> */
/* set_tid_address01 [-c n] [-e][-i n] [-I x] [-p x] [-t] */
/* where, -c n : Run n copies concurrently. */
/* -e : Turn on errno logging. */
/* -i n : Execute test n times. */
/* -I x : Execute test for x seconds. */
/* -P x : Pause for x seconds between iterations. */
/* -t : Turn on syscall timing. */
/* */
/* Total Tests: 1 */
/* */
/* Test Name: set_tid_address01 */
/* History: Porting from Crackerjack to LTP is done by */
/* Manas Kumar Nayak [email protected]> */
/******************************************************************************/

#include <stdio.h>
#include <errno.h>

#include "test.h"
// SPDX-License-Identifier: GPL-2.0-or-later
/* Copyright (c) Crackerjack Project., 2007
* Copyright (c) Linux Test Project, 2007-2024
*/

/*\
* [Description]
*
* Verify the basic functionality of set_tid_address() syscall.
*/

#include "tst_test.h"
#include "lapi/syscalls.h"

char *TCID = "set_tid_address01";
int testno;
int TST_TOTAL = 1;

/* Extern Global Functions */
/******************************************************************************/
/* */
/* Function: cleanup */
/* */
/* Description: Performs all one time clean up for this test on successful */
/* completion, premature exit or failure. Closes all temporary */
/* files, removes all temporary directories exits the test with */
/* appropriate return code by calling tst_exit() function. */
/* */
/* Input: None. */
/* */
/* Output: None. */
/* */
/* Return: On failure - Exits calling tst_exit(). Non '0' return code. */
/* On success - Exits calling tst_exit(). With '0' return code. */
/* */
/******************************************************************************/
void cleanup(void)
{

tst_rmdir();

tst_exit();
}

/* Local Functions */
/******************************************************************************/
/* */
/* Function: setup */
/* */
/* Description: Performs all one time setup for this test. This function is */
/* typically used to capture signals, create temporary dirs */
/* and temporary files that may be used in the course of this */
/* test. */
/* */
/* Input: None. */
/* */
/* Output: None. */
/* */
/* Return: On failure - Exits by calling cleanup(). */
/* On success - returns 0. */
/* */
/******************************************************************************/
void setup(void)
{
/* Capture signals if any */
/* Create temporary directories */
TEST_PAUSE;
tst_tmpdir();
}

int main(int ac, char **av)
static void verify_set_tid_address(void)
{
int newtid = -1;
int lc;

tst_parse_opts(ac, av, NULL, NULL);

setup();

for (lc = 0; TEST_LOOPING(lc); ++lc) {
tst_count = 0;
for (testno = 0; testno < TST_TOTAL; ++testno) {
TEST(tst_syscall(__NR_set_tid_address, &newtid));
if (TEST_RETURN == getpid()) {
tst_resm(TPASS,
"set_tid_address call succeeded: as expected %ld",
TEST_RETURN);
} else {
tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s",
TCID, TEST_ERRNO,
strerror(TEST_ERRNO));
}
}
}
cleanup();
tst_exit();
TST_EXP_VAL(tst_syscall(__NR_set_tid_address, &newtid), getpid());
}

static struct tst_test test = {
.test_all = verify_set_tid_address,
.needs_tmpdir = 1,
};

0 comments on commit 082f096

Please sign in to comment.