Print this page
    
4206 history_003_pos relies on exact size of history log and entries
4207 history_008_pos depends on obsolete internal history log message
4208 Typo in zfs_main.c: "posxiuser"
4209 Populate zfstest with the remainder of the STF tests
Reviewed by: Sonu Pillai <sonu.pillai@delphix.com>
Reviewed by: Will Guyette <will.guyette@delphix.com>
Reviewed by: Eric Diven <eric.diven@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/test/zfs-tests/tests/functional/reservation/reservation_009_pos.sh
          +++ new/usr/src/test/zfs-tests/tests/functional/reservation/reservation_009_pos.sh
   1    1  #!/usr/bin/bash -p
   2    2  #
   3    3  # CDDL HEADER START
   4    4  #
   5    5  # The contents of this file are subject to the terms of the
   6    6  # Common Development and Distribution License (the "License").
   7    7  # You may not use this file except in compliance with the License.
   8    8  #
   9    9  # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10   10  # or http://www.opensolaris.org/os/licensing.
  11   11  # See the License for the specific language governing permissions
  12   12  # and limitations under the License.
  13   13  #
  14   14  # When distributing Covered Code, include this CDDL HEADER in each
  15   15  # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16   16  # If applicable, add the following below this CDDL HEADER, with the
  17   17  # fields enclosed by brackets "[]" replaced with your own identifying
  18   18  # information: Portions Copyright [yyyy] [name of copyright owner]
  19   19  #
  20   20  # CDDL HEADER END
  21   21  #
  22   22  
  23   23  #
  24   24  # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  25   25  # Use is subject to license terms.
  26   26  #
  27   27  
  28   28  #
  29   29  # Copyright (c) 2013, 2016 by Delphix. All rights reserved.
  30   30  #
  31   31  
  32   32  . $STF_SUITE/include/libtest.shlib
  33   33  . $STF_SUITE/tests/functional/reservation/reservation.shlib
  34   34  
  35   35  #
  36   36  # DESCRIPTION:
  37   37  #
  38   38  # In pool with a full filesystem and another filesystem with a reservation
  39   39  # setting the reservation on the second filesystem to 'none' should allow more
  40   40  # data to be written to the first filesystem.
  41   41  #
  42   42  #
  43   43  # STRATEGY:
  
    | 
      ↓ open down ↓ | 
    43 lines elided | 
    
      ↑ open up ↑ | 
  
  44   44  # 1) Create a filesystem as a dataset
  45   45  # 2) Create a filesystem at the same level
  46   46  # 3) Set a reservation on the dataset filesystem
  47   47  # 4) Fill up the filesystem
  48   48  # 5) Set the reservation on the dataset filesystem to 'none'
  49   49  # 6) Verify we can write more data to the first filesystem
  50   50  #
  51   51  
  52   52  verify_runnable "both"
  53   53  
  54      -log_assert "Setting top level dataset reservation to 'none' allows more data "
       54 +log_assert "Setting top level dataset reservation to 'none' allows more data" \
  55   55      "to be written to top level filesystem"
  56   56  
  57   57  function cleanup
  58   58  {
  59   59          log_must rm -rf $TESTDIR/$TESTFILE1
  60   60          log_must rm -rf $TESTDIR/$TESTFILE2
  61   61          log_must zfs destroy -f $TESTPOOL/$TESTFS1
  62   62  }
  63   63  
  64   64  log_onexit cleanup
  65   65  
  66   66  log_must zfs create $TESTPOOL/$TESTFS1
  67   67  
  68   68  space_avail=`get_prop available $TESTPOOL`
  69   69  
  70   70  #
  71   71  # To make sure this test doesn't take too long to execute on
  72   72  # large pools, we calculate a reservation setting which when
  73   73  # applied to the dataset will ensure we have RESV_FREE_SPACE
  74   74  # left free in the pool which we can quickly fill.
  75   75  #
  76   76  ((resv_size_set = space_avail - RESV_FREE_SPACE))
  77   77  
  78   78  log_must zfs set reservation=$resv_size_set $TESTPOOL/$TESTFS1
  79   79  
  80   80  space_avail_still=`get_prop available $TESTPOOL`
  81   81  
  82   82  fill_size=`expr $space_avail_still + $RESV_TOLERANCE`
  83   83  write_count=`expr $fill_size / $BLOCK_SIZE`
  84   84  
  85   85  # Now fill up the filesystem (which doesn't have a reservation set
  86   86  # and thus will use up whatever free space is left in the pool).
  87   87  file_write -o create -f $TESTDIR/$TESTFILE1 -b $BLOCK_SIZE \
  88   88          -c $write_count -d 0
  89   89  ret=$?
  90   90  if (($ret != $ENOSPC)); then
  91   91          log_fail "Did not get ENOSPC as expected (got $ret)."
  92   92  fi
  93   93  
  94   94  log_must zfs set reservation=none $TESTPOOL/$TESTFS1
  95   95  
  96   96  log_must file_write -o create -f $TESTDIR/$TESTFILE2 -b pagesize \
  97   97      -c 1000 -d 0
  98   98  
  99   99  log_pass "Setting top level dataset reservation to 'none' allows more " \
 100  100      "data to be written to the top level filesystem"
  
    | 
      ↓ open down ↓ | 
    36 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX