summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxdevctl01/test.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel@rtems.org>2019-10-07 10:48:23 -0500
committerJoel Sherrill <joel@rtems.org>2020-01-17 16:13:35 -0600
commit5e7b3c6533aae1bedce65c1b2dfc28a34cfe8161 (patch)
tree995a5d0b5a81e43a9759b3f75c89aa9744694a4d /testsuites/psxtests/psxdevctl01/test.c
parent362cf319d44e7e64987f12aa36ea030e6298c586 (diff)
downloadrtems-5e7b3c6533aae1bedce65c1b2dfc28a34cfe8161.tar.bz2
posix_devctl - Add support for SOCKCLOSE
The FACE Technical Standard, Edition 3.0 and later require the definition of the subcommand SOCKCLOSE in <devctl.h>. Reference: ​https://www.opengroup.org/face closes #3856.
Diffstat (limited to '')
-rw-r--r--testsuites/psxtests/psxdevctl01/test.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/testsuites/psxtests/psxdevctl01/test.c b/testsuites/psxtests/psxdevctl01/test.c
index ed22ba8410..b45725cb58 100644
--- a/testsuites/psxtests/psxdevctl01/test.c
+++ b/testsuites/psxtests/psxdevctl01/test.c
@@ -76,6 +76,32 @@ int main(
rtems_test_assert( status == -1 );
rtems_test_assert( errno == EBADF );
+ puts( "posix_devctl() SOCKCLOSE on invalid file descriptor -- EBADF" );
+ fd = 21;
+ dcmd = SOCKCLOSE;
+ dev_data_ptr = NULL;
+ nbyte = 0;
+ status = posix_devctl( fd, dcmd, dev_data_ptr, nbyte, NULL );
+ rtems_test_assert( status == -1 );
+ rtems_test_assert( errno == EBADF );
+
+ /*
+ * Create a file, open it, and close it via posix_devctl().
+ * Then verify it is really closed.
+ */
+ puts( "posix_devctl() SOCKCLOSE on valid file descriptor -- OK" );
+ fd = open("tmp_for_close", O_CREAT | O_RDWR, S_IRWXU );
+ rtems_test_assert( fd != -1 );
+
+ dcmd = SOCKCLOSE;
+ dev_data_ptr = NULL;
+ nbyte = 0;
+ status = posix_devctl( fd, dcmd, dev_data_ptr, nbyte, NULL );
+ rtems_test_assert( status == 0 );
+
+ status = close( fd );
+ rtems_test_assert( status == -1 );
+ rtems_test_assert( errno == EBADF );
TEST_END();
exit(0);
}