From patchwork Thu Dec 8 18:49:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schumaker, Anna" X-Patchwork-Id: 9466961 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0D76E6071E for ; Thu, 8 Dec 2016 18:49:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F2EC9285E2 for ; Thu, 8 Dec 2016 18:49:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E79EA285EE; Thu, 8 Dec 2016 18:49:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B9C3A285E7 for ; Thu, 8 Dec 2016 18:49:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752586AbcLHStZ (ORCPT ); Thu, 8 Dec 2016 13:49:25 -0500 Received: from mx141.netapp.com ([216.240.21.12]:34231 "EHLO mx141.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752057AbcLHStY (ORCPT ); Thu, 8 Dec 2016 13:49:24 -0500 X-IronPort-AV: E=Sophos;i="5.33,320,1477983600"; d="scan'208";a="168395154" Received: from vmwexchts02-prd.hq.netapp.com ([10.122.105.23]) by mx141-out.netapp.com with ESMTP; 08 Dec 2016 10:47:23 -0800 Received: from VMWEXCCAS07-PRD.hq.netapp.com (10.122.105.25) by VMWEXCHTS02-PRD.hq.netapp.com (10.122.105.23) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 8 Dec 2016 10:49:23 -0800 Received: from NAM01-BY2-obe.outbound.protection.outlook.com (10.120.60.153) by VMWEXCCAS07-PRD.hq.netapp.com (10.122.105.25) with Microsoft SMTP Server (TLS) id 15.0.1210.3 via Frontend Transport; Thu, 8 Dec 2016 10:49:23 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=mErSN93GnIFTes7r/7ai0hOxGIwGtH1f/qcDDG9erjc=; b=imvSeDVTfymIeIyYn8CSci2zc63RkhdEP4cNScbqgLYPU0HCvIna28Zru50ixsvILTHgvmmS1mhaU1CMvxipJuyTn4jlpSzRwytBt5VMf5Us0I7DXQlGZImfDvfFHoCuiIlAQ5teWQNNO+8iYY5YQo21mE7C/ZjLP4wT8fJlWtg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Anna.Schumaker@netapp.com; Received: from gouda.nowheycreamery.com.nowheycreamery.com (99.9.112.69) by BLUPR0601MB1636.namprd06.prod.outlook.com (10.163.212.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.761.9; Thu, 8 Dec 2016 18:49:22 +0000 From: Anna Schumaker To: CC: , , Subject: [PATCH v4 1/5] generic/392: Add copy to new file test Date: Thu, 8 Dec 2016 13:49:04 -0500 Message-ID: <20161208184909.23321-2-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161208184909.23321-1-Anna.Schumaker@Netapp.com> References: <20161208184909.23321-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 X-Originating-IP: [99.9.112.69] X-ClientProxiedBy: BN3PR04CA0032.namprd04.prod.outlook.com (10.166.70.170) To BLUPR0601MB1636.namprd06.prod.outlook.com (10.163.212.142) X-MS-Office365-Filtering-Correlation-Id: d3452208-2925-4001-a287-08d41f9aed1e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0601MB1636; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0601MB1636; 3:jjijSiAqZbZoTzOwy6A1xeCjfhoclMdOQQh1ST+dJPHfeaC623vB7jYY974AfSjwRKCRdAKSwI54WFiaeS7rt9m/IqJvVZedFUAmCPlMA2Lv8lzde1IYl2dLKV7kIXcK8B9uL7GQVVfKjmGTJkefLeQOy4KIOkz4KPhDh6GQaYcEBGIvixBVEFBaCjFccOsS+I/n8gOb40qjEJ32HChWTGL2llEjLmcMjUXPS6+YXmxuJWZWDs6SmptkBwd57F06CwT2pk6YkebChBfcDON2zg== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0601MB1636; 25:zQlggSzjdUjqlb6GQ5CsUr10d2Pp/dfHcHs1dvEgO2/6eTc0j9KcMrjLiBtZGw0cxE/bhg8K9/zb16YnxLSnKltZz7ftUkesSRivJ9+tyKIGLl2+43GY8CUKw/RYWQgNifhp47/sZVRdBCpn8JT0ln44b/fSFKpt67QITeVnFd7lspNrd4W242R31Rl7iWrkiX0QY8yKEHOwbnnklEcZs4RmC7ocqzbKzaKgSP+JkuiPHLUrVTzw75WmjlPVhFIZNANF53aUUpiYSQGXdvJcw/sCwXE5TvHqN2cJYypYBtnP7QDGnejSMkJxCzz5vZ8QYcUoq62cxV+/EucswcFOosaICEheR/eoBnKUK9TiSUcTlA8iHq4zL1faO0t/uFLnkG5eFqJjdKjtPi3tIoCeDVmFCzL6p7oNcYmENZCh1wceOVUT/6ZuNKoKTpAiAewTTVywaky0KQm3buOmUqYoFiNcNUg44F9IeP2iMXGstgHCLhvy0NDLqxdNRDjwkEGXF7A/LVzE7YskKeRuOF1Ti41b5yfzF2t3oFaMryN8voajJ3F722enHp7+lzFRyFU22a6VjL0Cer9xFI+FXne1yGvlyXUTVLhdRl6msIzp7RRPhBxH9hs5IKKHOdl9skcwaI3CnT3cmNasiNPaYdAN9ZFJEwVojYE8RUtlaOwIDDi65zarIU8qSD13JCU2HCHKFfkFuRN8MN4stRkSqbb/Wx7yc8h06PDyu7kRP1GXgEaQtMDYR4ndcGycMyI0B+l2PXGEtHqsr5P5dWg2NKyzsBalD/f3FVm0vNRPs0xIbjCB0uAFaqZdxeq1W4jshGoe X-LD-Processed: 4b0911a0-929b-4715-944b-c03745165b3a,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; BLUPR0601MB1636; 31:2gvL+0kP02SyDtFhWdsJFJA3KIL9ShD9H2RvcWGbvcNsa9T6G6wsQCnvWtcoNPqjhwnFLHqpQXy7ERwEV52JRdMQfuYBBj/OoC6/Wghj+Cr7tqH9XSHHH6BBwgdyztqoTD9E1MOaQ0MUMVklS5EKAy7FOWm0tCAa4gpv7sHg7sG1GgdMRlEBSxr0S3i6emnG9vP3jJf12GObp6Qxsyo3HrSTP3gZx9PEyYH0jxOFMTI95r5q4KsqP2C8JvsFgv0Wks59Hq4AB4IWPsuiNKHrZw==; 20:hrXr3Rkwq+CeFWsOcD9MWBzZICs4rRXEnGpbWriKRqL067xdDvKdPSVAtQMKOt7sUIsiC37Zt1RRU8nKausncLZruPis4RO7nFCamQbtKeaKIDL78ancHy43Jw8Md+HxTsNT2D4UvIY20u8Dl/Cks2IrXBMUkN2cZaF/CoSja7Z4jE5CUW3kmhMP+WAUco87Rkn+nd3R3+bqXG28I3bkZgGrxVuTmF9lRs/DUJxPXohxoltTKFiuoaL7MYSq2tLcwT59l3KwKZ/YGGyhcOJa3Ukcp1FSErYK3Sc8nIhtyVn24+SJ9TomLdDSFE7RB3KC8oW349mB8UZkBLTad0u2nAbdGXvBT0sFsdF/DzWUuDZuSARZ40KVIoiWWAVaPamogtCSABAGBlZ7Gmg2qcWYYQkkeuLh3tQtho39jqHDZrNWu9c3a+J0CZ7rZds157Oy3uH5gWB/Wj8KZf33Yg406HcPD0C+51mx5BeJyw06OXbKo9hg7ydKSh+5O1MCfHQd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(6072148); SRVR:BLUPR0601MB1636; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0601MB1636; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0601MB1636; 4:PVelL41YJOOM7389D4ZJHrZWa/O6AiuQyBNrdQusUHzQI9pjjGqnayo/w37oVObzdFNmOo6jVfD+bYRU5uCIZ0zpkdMiqkfNUj+6p3DOsgg98DPWfIs85kasdob3wefT7EB+aa7AMmVYgZrCAPAWdXBkIhZW1j/NVsTXI5Oy26rNoIejNZAhIOZfro28z78LMMCcWXjHr8lLiinUziitSYR4tQQVOiGDbqBo5LmpknY1qUZ8pA7TfJoHh/cnE/FCSJhFKcwPGRGi3uIOEHn04gQFa8SRNJex/+tMzeRXYi99RWIrn5AOlY77MsJEvobVA+D9RBopEdb+LGr+JYPEdVJx3RuG1ySjY+nkRyiDZZ4D0KZYHFLixE3ynogkyY63lUT+R3x30cOPDm1pkAYYitITUExwP19j2KqyNN7cjmaY80bmYZkvOTpZRoIatNBd3bl4IbriAqgPT6enwwgEj4s6vHZ1lL30ecyMduDBBqS3YadY/cO/eCRwSDBlCCJwGofpzJUxbMQgGTuiiN0khZvfHFkINfFMrseq0C0m4TBZp1A8hDZ1hzcF3MIv1Qo9lpQIF5QQlzHcbYOl3oZAjNFM+hpqAvR3z1Wol+9Ugb4= X-Forefront-PRVS: 0150F3F97D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39840400002)(39410400002)(39450400003)(39860400002)(39850400002)(189002)(199003)(189998001)(50226002)(50466002)(4326007)(1076002)(48376002)(7846002)(81166006)(81156014)(101416001)(7736002)(92566002)(305945005)(8676002)(68736007)(86362001)(110136003)(106356001)(105586002)(575784001)(2906002)(47776003)(42186005)(38730400001)(5003940100001)(76176999)(36756003)(733004)(6512006)(5660300001)(6116002)(97736004)(6486002)(2351001)(6916009)(3846002)(6666003)(6506006)(2950100002)(66066001)(50986999)(41533002)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0601MB1636; H:gouda.nowheycreamery.com.nowheycreamery.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: netapp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0601MB1636; 23:RSyOpcB0QCLvUzSPKfmhG/4DxobWZn48dg46NZA?= =?us-ascii?Q?UnE4ixkDNNNac0bjEYLbTI2ISrjGhuss5QPP79cWC/b7iQU4grZ9WmbJtjb5?= =?us-ascii?Q?q23sfhlQLxPfAp9R7epe4tJrVNNlV2r2lXNQUye134oi64KrkPZy1v5gpuLX?= =?us-ascii?Q?wTuHmnL+9SYC3jhf/A2HfZ7luGkFkHJyiUCDQzNEu5NYHTmGjh8/p402J9+w?= =?us-ascii?Q?VSt+evg/EnRnLljvCn78r5PGGHkjQwqpq4ZiTUNgXqiJP9v+PYFbL10fgfnk?= =?us-ascii?Q?WzUQiaJYIMhHrZfR3tlu8xlVKbFHTjQymNC0RWe6nzLX+YrMgjlEJYP9I88K?= =?us-ascii?Q?29cqp0DEyIGc5sv6fmfziuYeC/e91uNf34/AciFdg1ysX1JOs/WhES6MzO/X?= =?us-ascii?Q?EvaYQzsZ40TAIvzEPvnANzdwCxNGosg3DVVAGh1U9HJySSUu0jj+DJUooKxJ?= =?us-ascii?Q?xsskyshNc5EqTm6iP+8WH6p783zeCQ+0gqXaeC6IqOPLOZ8WTqGOV9LCodz9?= =?us-ascii?Q?TY1SQUUAAw/9PPzZ7ihVJtJ9pHAvuS7zYzBEXw5maDt2jdE3UR66O5ZfWeAr?= =?us-ascii?Q?iFlLja369fmppE+TJ6WX46mbhEzSy52BxkVGYbxI9EtefwxQnymRAHTnk0HM?= =?us-ascii?Q?Oq5llWS43Q9MguqJ/SM1KD1Jzqtqi4H7pP6N5Iwjk5Hf2pEUI1U9VDJsjOBY?= =?us-ascii?Q?KWo0a7h+N1EvFAXW+g1QijLck8YVAIqZNWTwM8OmdMviDWP80WCssKBPj7p5?= =?us-ascii?Q?FS8owwlJfMLxcFc5xxwyDd3noIRG5p7qxOgbeTPbeUix6bTc9exWMf080q1Y?= =?us-ascii?Q?S4O9px2NcR+7rSZDpKrsEjZ1C74a8/BoYMGshcNLYll70l3hHdrDYAbxvVmv?= =?us-ascii?Q?r4QzlnrX0lSs6MeAC76fLmbCgL91ju/l8sh9L7prwKTMloGYqsQl3duNvUkM?= =?us-ascii?Q?b3mydoCJd5AjXGI4D8SLx3Vvn9fR1xDwzrULOKjEYKYp8+CpUq7j1Z/yyRap?= =?us-ascii?Q?IqyJrl0ksVrS3VFDNWO3NR/B4oRQ5DvrSWG6K/mzJ+9VDrlqcuXd/5JjMpco?= =?us-ascii?Q?tEc+BvHHVepCe+rpkWN0zGa+uK8Ws+GELgvyG7koKSbWco1ZAHV0msnqr2ja?= =?us-ascii?Q?cbHThDcdHJg6F3QBzOWcBwVKTrlQ+lkuTkd9RiPGofN+FW93E++zlJT6WD9/?= =?us-ascii?Q?DE8f0Uf6ZsbANegiAUcRmmiKsvTLUTEaH1br7AWawfE9k9YypBRP+uvqlFP7?= =?us-ascii?Q?LpBQwDIC57q1qALhPZvN0aSOp7jJYIhmwjqxwP6gc?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0601MB1636; 6:C/8XuZfz11skgRyK5u+DbluheIVR2jOkdZVj5i4bwepfM//58z9/nW4Kw1pN3QttVEey42F+eplwUQBP+GeokRJXL/f0uzseK+CqNxO6m/9G8DXWH452TwRWrYrDvNqgTp2iD3wuEYx760unzXG7nKNxxLtjvbflMHymrwfZhFKl46Uud+tNdTdm1qj9kyKunKPLhZhorYG6sBAB+8x6TAGJZglQhUAkfqkndIcyA3YkT89tWx2kO7dbUfkpcw5ZGwN1gdLjuoWSCagBsVJOUlbFRFGIoYjhGwGh0eZcmmQOA9AUI8ndQgKTI0BafhjtsK8ASLBopTmt03ik1KVtdu2KdsK0lmiiTWJ8ZJXcNJQE+RExdSEYcA22zFise3b/KuOWDtcgrg4Pam7n508i5ELoFpMjvKxg2j5qFXsZEmA=; 5:PTo4oNkHd+qfnMyqC/yElhqpBgP6+nSbtBSPbs+J4tx9ngcI2O1bpi+jLRRAGoED2Rbm24pYJrhPDXUO1mTqbpBUtj6yeXAYavkOM0j3TsurTofHmdCplVRJ6OtgrnUymKJ1kwl5t152Qn4WdNeN7AJZ1f5pUlZfX0SKKPJ0zGM=; 24:/5knsxqKcaPEspJtaUDAF6VH94S6TyWw/djN+tFgxa4w0is1a0RYipgGbCbl9GB8A2lnPx6ey05m51uoyxSkFMEXz/3xNhYHwny+67TcDmQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0601MB1636; 7:Lds0AITWyJGMmmhAdCPYVLpnZ1BIamszFbZrnkds1DRNZ7sh3t753xopynDzl2CzLR7PxujKpXZBmzgCIMwgsN7E25YpdlZBDvCfTjU6cndCT+wglQO5t5Y8kssmzto2he5CVmxTR4URU0v3JJ7kH5be5gJp7RevK0EomlhYr6lSELnfZsKRhHuhft4i5rhRfYOtseZ5G8RLI2Ve4dSo/p7whrXBB1ZxU3oaCIurQNrp7ewId2XZKMBdwbR0wxJXbufuGLakOgbTDXzDUMgoMxN7+EZLhI5eF57ZDeJpj7jquTXyFo5tFzR0IFdGc9MkGSmzpfo7p0CoJsaB30qhG/dBzywwFyXdD1UBv0RzLc7mF86zPSlFt9XwT5BczUV9Kvahsrv+T6pGJtnJuG5aib/q7DfwRbEobYRXqdSYYVI7Pgte1lWrUrYlvuDh+Zl4gyx7raUvSCAt/nMhCbTW3Q== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2016 18:49:22.6312 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0601MB1636 X-OriginatorOrg: netapp.com Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This test copies data from various points in a source file to a new file. This is useful for testing the basics of copy_file_range(). Signed-off-by: Anna Schumaker --- common/rc | 6 +++ tests/generic/392 | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/generic/392.out | 26 +++++++++++++ tests/generic/group | 1 + 4 files changed, 135 insertions(+) create mode 100755 tests/generic/392 create mode 100644 tests/generic/392.out diff --git a/common/rc b/common/rc index 8c99306..7c5d2a8 100644 --- a/common/rc +++ b/common/rc @@ -2054,6 +2054,12 @@ _require_xfs_io_command() "chproj") testio=`$XFS_IO_PROG -F -f -c "chproj 0" $testfile 2>&1` ;; + "copy_range") + testcopy=$TEST_DIR/$$.copy.xfs_io + $XFS_IO_PROG -F -f -c "pwrite 0 4k" $testfile 2>&1 > /dev/null + testio=`$XFS_IO_PROG -F -f -c "copy_range $testfile" $testcopy 2>&1` + rm -f $testcopy 2>&1 > /dev/null + ;; "falloc" ) testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $testfile 2>&1` ;; diff --git a/tests/generic/392 b/tests/generic/392 new file mode 100755 index 0000000..466643a --- /dev/null +++ b/tests/generic/392 @@ -0,0 +1,102 @@ +#!/bin/bash +# FS QA Test No. 392 +# +# Tests vfs_copy_file_range(): +# - Copy a file +# - Copy beginning of original to new file +# - Copy middle of original to a new file +# - Copy end of original to new file +# - Copy middle of original to a new file, creating a hole +#----------------------------------------------------------------------- +# Copyright (c) 2016 Netapp, Inc. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -rf $tmp.* +} + +# get standard environment +. common/rc +. common/filter + +# real QA test starts here +_supported_fs generic +_supported_os Linux + +_require_xfs_io_command "copy_range" +_require_test + +testdir=$TEST_DIR/test-$seq +rm -rf $testdir +mkdir $testdir +rm -f $seqres.full + +echo "Create the original file and then copy" +$XFS_IO_PROG -f -c 'pwrite -S 0x61 0 1000' $testdir/file >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c 'pwrite -S 0x62 1000 1000' $testdir/file >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c 'pwrite -S 0x63 2000 1000' $testdir/file >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c 'pwrite -S 0x64 3000 1000' $testdir/file >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c 'pwrite -S 0x65 4000 1000' $testdir/file >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c "copy_range $testdir/file" "$testdir/copy" +cmp $testdir/file $testdir/copy +echo "Original md5sums:" +md5sum $testdir/{file,copy} | _filter_test_dir + +echo "Copy beginning of original file" +$XFS_IO_PROG -f -c "copy_range -l 1000 $testdir/file" "$testdir/beginning" +cmp -n 1000 $testdir/file $testdir/beginning +echo "md5sums after copying beginning:" +md5sum $testdir/{file,beginning} | _filter_test_dir + +echo "Copy middle of original file" +$XFS_IO_PROG -f -c "copy_range -s 1000 -l 3000 $testdir/file" "$testdir/middle" +cmp -n 3000 $testdir/file $testdir/middle 1000 +echo "md5sums after copying middle:" +md5sum $testdir/{file,middle} | _filter_test_dir + +echo "Copy end of original file" +$XFS_IO_PROG -f -c "copy_range -s 4000 -l 1000 $testdir/file" "$testdir/end" +cmp -n 1000 $testdir/file $testdir/end 4000 +echo "md5sums after copying end:" +md5sum $testdir/{file,end} | _filter_test_dir + +echo "Copy beyond end of original file" +$XFS_IO_PROG -f -c "copy_range -s 4000 -l 2000 $testdir/file" "$testdir/beyond" +cmp -n 1000 $testdir/file $testdir/end 4000 +echo "md5sums after copying beyond:" +md5sum $testdir/{file,beyond} | _filter_test_dir + +echo "Copy creates hole in target file" +$XFS_IO_PROG -f -c "copy_range -s 1000 -l 3000 -d 1000 $testdir/file" "$testdir/hole" +cmp -n 3000 $testdir/file $testdir/hole 1000 1000 +echo "md5sums after creating hole:" +md5sum $testdir/{file,hole} | _filter_test_dir + +#success, all done +status=0 +exit diff --git a/tests/generic/392.out b/tests/generic/392.out new file mode 100644 index 0000000..1c44b42 --- /dev/null +++ b/tests/generic/392.out @@ -0,0 +1,26 @@ +QA output created by 392 +Create the original file and then copy +Original md5sums: +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/file +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/copy +Copy beginning of original file +md5sums after copying beginning: +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/file +cabe45dcc9ae5b66ba86600cca6b8ba8 TEST_DIR/test-392/beginning +Copy middle of original file +md5sums after copying middle: +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/file +4197de9da5badfc302715486b82bcdf1 TEST_DIR/test-392/middle +Copy end of original file +md5sums after copying end: +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/file +e68d4a150c4e42f4f9ea3ffe4c9cf4ed TEST_DIR/test-392/end +Copy beyond end of original file +copy_range: Invalid argument +md5sums after copying beyond: +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/file +e68d4a150c4e42f4f9ea3ffe4c9cf4ed TEST_DIR/test-392/beyond +Copy creates hole in target file +md5sums after creating hole: +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-392/file +3ae9aef0992f8cb51c90c9a0ff2dd9d2 TEST_DIR/test-392/hole diff --git a/tests/generic/group b/tests/generic/group index 2c16bd1..1d6e7d2 100644 --- a/tests/generic/group +++ b/tests/generic/group @@ -394,3 +394,4 @@ 389 auto quick acl 390 auto freeze stress dangerous 391 auto quick rw +392 auto quick copy