1*b3127a2dSJohn Baldwin /*- 2*b3127a2dSJohn Baldwin * SPDX-License-Identifier: BSD-2-Clause 3*b3127a2dSJohn Baldwin * 4*b3127a2dSJohn Baldwin * Copyright (c) 2025 Chelsio Communications, Inc. 5*b3127a2dSJohn Baldwin * Written by: John Baldwin <jhb@FreeBSD.org> 6*b3127a2dSJohn Baldwin */ 7*b3127a2dSJohn Baldwin 8*b3127a2dSJohn Baldwin #include <atf-c++.hpp> 9*b3127a2dSJohn Baldwin #include <libutil.h> 10*b3127a2dSJohn Baldwin 11*b3127a2dSJohn Baldwin #include <libutil++.hh> 12*b3127a2dSJohn Baldwin 13*b3127a2dSJohn Baldwin ATF_TEST_CASE_WITHOUT_HEAD(FILE_up); ATF_TEST_CASE_BODY(FILE_up)14*b3127a2dSJohn BaldwinATF_TEST_CASE_BODY(FILE_up) 15*b3127a2dSJohn Baldwin { 16*b3127a2dSJohn Baldwin FILE *fp = fopen("/dev/null", "r"); 17*b3127a2dSJohn Baldwin ATF_REQUIRE(fp != NULL); 18*b3127a2dSJohn Baldwin ATF_REQUIRE(fileno(fp) != -1); 19*b3127a2dSJohn Baldwin 20*b3127a2dSJohn Baldwin freebsd::FILE_up f(fp); 21*b3127a2dSJohn Baldwin ATF_REQUIRE_EQ(fileno(fp), fileno(f.get())); 22*b3127a2dSJohn Baldwin 23*b3127a2dSJohn Baldwin f.reset(); 24*b3127a2dSJohn Baldwin ATF_REQUIRE_EQ(f.get(), nullptr); 25*b3127a2dSJohn Baldwin 26*b3127a2dSJohn Baldwin ATF_REQUIRE_EQ(-1, fileno(fp)); 27*b3127a2dSJohn Baldwin ATF_REQUIRE_EQ(EBADF, errno); 28*b3127a2dSJohn Baldwin } 29*b3127a2dSJohn Baldwin ATF_INIT_TEST_CASES(tcs)30*b3127a2dSJohn BaldwinATF_INIT_TEST_CASES(tcs) 31*b3127a2dSJohn Baldwin { 32*b3127a2dSJohn Baldwin ATF_ADD_TEST_CASE(tcs, FILE_up); 33*b3127a2dSJohn Baldwin } 34