From owner-svn-src-head@FreeBSD.ORG Mon Jan 13 13:27:01 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6987BF61; Mon, 13 Jan 2014 13:27:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 49A5D1F87; Mon, 13 Jan 2014 13:27:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s0DDR1Yk086746; Mon, 13 Jan 2014 13:27:01 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s0DDR0Nn086741; Mon, 13 Jan 2014 13:27:00 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201401131327.s0DDR0Nn086741@svn.freebsd.org> From: Hans Petter Selasky Date: Mon, 13 Jan 2014 13:27:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r260587 - head/tools/tools/usbtest X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jan 2014 13:27:01 -0000 Author: hselasky Date: Mon Jan 13 13:27:00 2014 New Revision: 260587 URL: http://svnweb.freebsd.org/changeset/base/260587 Log: Add new testcase for USB mass storage. Modified: head/tools/tools/usbtest/usb_msc_test.c head/tools/tools/usbtest/usb_msc_test.h Modified: head/tools/tools/usbtest/usb_msc_test.c ============================================================================== --- head/tools/tools/usbtest/usb_msc_test.c Mon Jan 13 12:17:41 2014 (r260586) +++ head/tools/tools/usbtest/usb_msc_test.c Mon Jan 13 13:27:00 2014 (r260587) @@ -255,6 +255,35 @@ do_msc_cmd(uint8_t *pcmd, uint8_t cmdlen } } +static void +do_msc_shorter_cmd(uint8_t lun) +{ + uint8_t buffer[sizeof(umass_bbb_cbw_t)]; + int actlen; + int error; + int x; + + memset(buffer, 0, sizeof(buffer)); + + for (x = 0; x != (sizeof(buffer) - 1); x++) { + error = libusb20_tr_bulk_intr_sync(xfer_out, + buffer, x, &actlen, 250); + + printf("Sent short %d of %d bytes wrapper block, " + "status = %d\n", x, (int)(sizeof(buffer) - 1), + error); + + do_msc_reset(lun); + + if (error != 0) { + printf("ERROR: Too short command wrapper " + "was not accepted\n"); + stats.xfer_error++; + break; + } + } +} + static uint8_t do_read_10(uint32_t lba, uint32_t len, void *buf, uint8_t lun) { @@ -564,6 +593,11 @@ usb_msc_test(struct usb_msc_params *p) if (capacity_bs != 512) printf("INFO: Blocksize is not 512 bytes\n"); + if (p->try_shorter_wrapper_block) { + printf("Trying too short command wrapper:\n"); + do_msc_shorter_cmd(lun); + } + if (p->try_invalid_scsi_command) { int status; @@ -1195,6 +1229,7 @@ show_host_msc_test(uint8_t level, uint16 "14) Toggle try aborted write transfer: <%s>\n" "15) Toggle request sense on error: <%s>\n" "16) Toggle try all LUN: <%s>\n" + "17) Toggle try too short wrapper block: <%s>\n" "20) Reset parameters\n" "30) Start test (VID=0x%04x, PID=0x%04x)\n" "40) Select another device\n" @@ -1215,6 +1250,7 @@ show_host_msc_test(uint8_t level, uint16 (params.try_abort_data_write ? "YES" : "NO"), (params.try_sense_on_error ? "YES" : "NO"), (params.try_all_lun ? "YES" : "NO"), + (params.try_shorter_wrapper_block ? "YES" : "NO"), vid, pid); switch (retval) { case 0: @@ -1274,6 +1310,9 @@ show_host_msc_test(uint8_t level, uint16 case 16: params.try_all_lun ^= 1; break; + case 17: + params.try_shorter_wrapper_block ^= 1; + break; case 20: set_defaults(¶ms); break; Modified: head/tools/tools/usbtest/usb_msc_test.h ============================================================================== --- head/tools/tools/usbtest/usb_msc_test.h Mon Jan 13 12:17:41 2014 (r260586) +++ head/tools/tools/usbtest/usb_msc_test.h Mon Jan 13 13:27:00 2014 (r260587) @@ -109,6 +109,7 @@ struct usb_msc_params { uint8_t try_invalid_scsi_command; uint8_t try_invalid_wrapper_block; uint8_t try_invalid_max_packet_size; + uint8_t try_shorter_wrapper_block; uint8_t try_last_lba; uint8_t try_abort_data_write; uint8_t try_sense_on_error;