11.1Schristos# $NetBSD: t_inotify.sh,v 1.1 2023/08/19 22:56:44 christos Exp $
21.1Schristos#
31.1Schristos# Copyright (c) 2023 The NetBSD Foundation, Inc.
41.1Schristos# All rights reserved.
51.1Schristos#
61.1Schristos# This code is derived from software contributed to The NetBSD Foundation
71.1Schristos# by Theodore Preduta.
81.1Schristos#
91.1Schristos# Redistribution and use in source and binary forms, with or without
101.1Schristos# modification, are permitted provided that the following conditions
111.1Schristos# are met:
121.1Schristos# 1. Redistributions of source code must retain the above copyright
131.1Schristos#    notice, this list of conditions and the following disclaimer.
141.1Schristos# 2. Redistributions in binary form must reproduce the above copyright
151.1Schristos#    notice, this list of conditions and the following disclaimer in the
161.1Schristos#    documentation and/or other materials provided with the distribution.
171.1Schristos#
181.1Schristos# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
191.1Schristos# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
201.1Schristos# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
211.1Schristos# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
221.1Schristos# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
231.1Schristos# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
241.1Schristos# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
251.1Schristos# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
261.1Schristos# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
271.1Schristos# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
281.1Schristos# POSSIBILITY OF SUCH DAMAGE.
291.1Schristos#/
301.1Schristos
311.1Schristosatf_test_case init
321.1Schristosinit_head() {
331.1Schristos	atf_set "descr" "Tests inotify_init applies its flags correctly"
341.1Schristos}
351.1Schristos
361.1Schristosinit_body() {
371.1Schristos	h_ensure_emul_exists
381.1Schristos	atf_check -s exit:0 "$(atf_get_srcdir)/h_inotify_init"
391.1Schristos}
401.1Schristos
411.1Schristosatf_test_case single_file
421.1Schristossingle_file_head() {
431.1Schristos	atf_set "descr" \
441.1Schristos		"Tests correct events are generated when a single file is watched"
451.1Schristos}
461.1Schristos
471.1Schristossingle_file_body() {
481.1Schristos	h_ensure_emul_exists
491.1Schristos	atf_check -s exit:0 "$(atf_get_srcdir)/h_inotify_single_file"
501.1Schristos}
511.1Schristos
521.1Schristosatf_test_case directory
531.1Schristosdirectory_head() {
541.1Schristos	atf_set "descr" \
551.1Schristos		"Tests correct events are generated when a directory is watched"
561.1Schristos}
571.1Schristos
581.1Schristosdirectory_body() {
591.1Schristos	h_ensure_emul_exists
601.1Schristos	atf_check -s exit:0 "$(atf_get_srcdir)/h_inotify_directory"
611.1Schristos}
621.1Schristos
631.1Schristosatf_test_case watch_change
641.1Schristoswatch_change_head() {
651.1Schristos	atf_set "descr" \
661.1Schristos		"Tests the watch descriptor can be modified"
671.1Schristos}
681.1Schristos
691.1Schristoswatch_change_body() {
701.1Schristos	h_ensure_emul_exists
711.1Schristos	atf_check -s exit:0 "$(atf_get_srcdir)/h_inotify_watch_change"
721.1Schristos}
731.1Schristos
741.1Schristosatf_init_test_cases() {
751.1Schristos	atf_add_test_case init
761.1Schristos	atf_add_test_case directory
771.1Schristos	atf_add_test_case single_file
781.1Schristos	atf_add_test_case watch_change
791.1Schristos}
80