1d7e7cb9cSYuri Pankov#! /usr/bin/ksh -p
2d7e7cb9cSYuri Pankov#
3d7e7cb9cSYuri Pankov#
4d7e7cb9cSYuri Pankov# This file and its contents are supplied under the terms of the
5d7e7cb9cSYuri Pankov# Common Development and Distribution License ("CDDL"), version 1.0.
6d7e7cb9cSYuri Pankov# You may only use this file in accordance with the terms of version
7d7e7cb9cSYuri Pankov# 1.0 of the CDDL.
8d7e7cb9cSYuri Pankov#
9d7e7cb9cSYuri Pankov# A full copy of the text of the CDDL should have accompanied this
10d7e7cb9cSYuri Pankov# source.  A copy of the CDDL is also available via the Internet at
11d7e7cb9cSYuri Pankov# http://www.illumos.org/license/CDDL.
12d7e7cb9cSYuri Pankov#
13d7e7cb9cSYuri Pankov
14d7e7cb9cSYuri Pankov#
15d7e7cb9cSYuri Pankov# Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
16d7e7cb9cSYuri Pankov#
17d7e7cb9cSYuri Pankov
18*1d32ba66SJohn Wren Kennedy#
19*1d32ba66SJohn Wren Kennedy# Copyright (c) 2016 by Delphix. All rights reserved.
20*1d32ba66SJohn Wren Kennedy#
21*1d32ba66SJohn Wren Kennedy
22d7e7cb9cSYuri Pankov. $STF_SUITE/tests/functional/casenorm/casenorm.kshlib
23d7e7cb9cSYuri Pankov
24d7e7cb9cSYuri Pankov# DESCRIPTION:
25d7e7cb9cSYuri Pankov# Check that we can create FS with all supported normalization forms.
26d7e7cb9cSYuri Pankov#
27d7e7cb9cSYuri Pankov# STRATEGY:
28d7e7cb9cSYuri Pankov# 1. Create FS with all supported normalization forms.
29d7e7cb9cSYuri Pankov# 2. Check that utf8only is set on except for normalization=none.
30d7e7cb9cSYuri Pankov# 3. Check that it's not possible to create FS with utf8only=off
31d7e7cb9cSYuri Pankov#    and normalization other than none.
32d7e7cb9cSYuri Pankov
33d7e7cb9cSYuri Pankovverify_runnable "global"
34d7e7cb9cSYuri Pankov
35d7e7cb9cSYuri Pankovfunction cleanup
36d7e7cb9cSYuri Pankov{
37d7e7cb9cSYuri Pankov	destroy_testfs
38d7e7cb9cSYuri Pankov}
39d7e7cb9cSYuri Pankov
40d7e7cb9cSYuri Pankovlog_onexit cleanup
41d7e7cb9cSYuri Pankovlog_assert "Can create FS with all supported normalization forms"
42d7e7cb9cSYuri Pankov
43d7e7cb9cSYuri Pankovfor form in none formC formD formKC formKD; do
44d7e7cb9cSYuri Pankov	create_testfs "-o normalization=$form"
45d7e7cb9cSYuri Pankov	if [[ $form != "none" ]] ; then
46*1d32ba66SJohn Wren Kennedy		utf8only=$(zfs get -H -o value utf8only $TESTPOOL/$TESTFS)
47d7e7cb9cSYuri Pankov		if [[ $utf8only != "on" ]]; then
48d7e7cb9cSYuri Pankov			log_fail "Turning on normalization didn't set " \
49d7e7cb9cSYuri Pankov			    "utf8only to on"
50d7e7cb9cSYuri Pankov		fi
51d7e7cb9cSYuri Pankov	fi
52d7e7cb9cSYuri Pankov	destroy_testfs
53d7e7cb9cSYuri Pankovdone
54d7e7cb9cSYuri Pankov
55d7e7cb9cSYuri Pankovfor form in formC formD formKC formKD; do
56*1d32ba66SJohn Wren Kennedy	log_mustnot zfs create -o utf8only=off -o normalization=$form \
57d7e7cb9cSYuri Pankov	    $TESTPOOL/$TESTFS
58d7e7cb9cSYuri Pankov	destroy_testfs
59d7e7cb9cSYuri Pankovdone
60d7e7cb9cSYuri Pankov
61d7e7cb9cSYuri Pankovlog_pass "Can create FS with all supported normalization forms"
62