From owner-p4-projects@FreeBSD.ORG Sun Apr 11 10:22:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D24C1065673; Sun, 11 Apr 2010 10:22:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F24BD1065670 for ; Sun, 11 Apr 2010 10:22:21 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DCC608FC12 for ; Sun, 11 Apr 2010 10:22:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BAMLR5018675 for ; Sun, 11 Apr 2010 10:22:21 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BAMLDF018673 for perforce@freebsd.org; Sun, 11 Apr 2010 10:22:21 GMT (envelope-from gcooper@FreeBSD.org) Date: Sun, 11 Apr 2010 10:22:21 GMT Message-Id: <201004111022.o3BAMLDF018673@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 176779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Apr 2010 10:22:22 -0000 http://p4web.freebsd.org/@@176779?ac=10 Change 176779 by gcooper@gcooper-bayonetta on 2010/04/11 10:21:45 Checkpoint testplan. Affected files ... .. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/testplan#2 edit Differences ... ==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/testplan#2 (text+ko) ==== @@ -1,40 +1,145 @@ -REQUIREMENTS: +Basic package installation. + + Local package install: + - Type: Positive + - Setup: Create basic package (no special metadata in package list). + - Test: Install predefined package. + - PF Criteria: The contents of the package must be installed in the + defined prefix and the permissions and the mode must match the + created package. + + Remote package install (FTP, absolute): + - Type: Positive + - Setup: Create basic package (no special metadata in package list). + Host said package on ftp server. + - Test: Install predefined package via fully qualified URI. + - PF Criteria: The package must be fetched. The contents of the + package must be installed in the defined prefix and the permissions + and the mode must match the created package. The package will be + deleted after the installation is complete. + + Remote package install (HTTP, absolute): + - Type: Positive + - Setup: Create basic package (no special metadata in package list). + Host said package on webserver. + - Test: Install predefined package via fully qualified URI. + - PF Criteria: The package must be fetched. The contents of the + package must be installed in the defined prefix and the permissions + and the mode must match the created package. The package will be + deleted after the installation is complete. + + Remote package install (FTP, package name): + - Type: Positive + - Setup: Create basic package (no special metadata in package list). + Host said package on webserver. + - Test: Install predefined package. + - PF Criteria: The package must be fetched. The contents of the + package must be installed in the defined prefix and the permissions + and the mode must match the created package. The package will be + deleted after the installation is complete. + + Remote package install (HTTP, package name): + - Type: Positive + - Setup: Create basic package (no special metadata in package list). + Host said package on webserver. + - Test: Install predefined package. + - PF Criteria: The package must be fetched. The contents of the + package must be installed in the defined prefix and the permissions + and the mode must match the created package. The package will be + deleted after the installation is complete. + + Remote package install (pre-existing package): + - Type: Positive + - Setup: Create basic package (no special metadata in package list). + - Test: Install pre-existing package. + - PF Criteria: The package will not be fetched. The contents of the + package must be installed in the defined prefix and the permissions + and the mode must match the created package. The package will be + deleted after the installation is complete. + + Remote package install (lacking space): + - Type: Negative + - Setup: Create a large package (or a small memory disk). + - Test: Attempt to install package. + - PF Criteria: The package will be partially fetched and fail. Thus, + the installation will fail as well. The package will be deleted. + + Remote package install (unsupported URI scheme): + - Type: Negative + - Setup: n/a + - Test: Attempt to install package via non-fetch(3) supported URI + (say, gopher:// ?) scheme. + - PF Criteria: The package fetch will fail and the install will fail + with the utility claiming that the URI isn't supported, or something + of the like. + + Already Installed package: + - Type: Negative + - Setup: Install a package. + - Test: Attempt to reinstall package. + - PF Criteria: The package will not be installed. + + Already Installed package: + - Type: Positive + - Setup: Install a package. + - Test: Attempt to reinstall package with force option. + - PF Criteria: The package will be installed. + + Local package install (package missing metadata): + - Type: Negative + - Setup: Create tarball missing required pieces (+CONTENTS, etc). + - Test: Attempt to install predefined package. + - PF Criteria: The payload contained in the package will not be + installed as the metadata is missing. + + Missing package: + - Type: Negative + - Setup: n/a + - Test: Attempt to install a non-existent package. + - PF Criteria: The installation will fail. + + Missing dependency: + - Type: Negative + - Setup: Create package A, dependent on missing package B + - Test: Attempt to install package A. + - PF Criteria: The installation will fail because of the unfulfilled + dependency requirement via package B. -Package List - - Packaging metadata is specified by a package list. It will contain - all of the details that at first glance describe a package, such as - what the payload will be and the properties of the payloads - contents (ownership, mode). Other pieces describing the install - process will exist outside of the package manifest. + Conflicting package: + - Type: Negative + - Setup: Create package A and package B, s.t. package A conflicts with + package B. + - Test: Install package B. Attempt to install package A. + - PF Criteria: package B will successfully install, but package A will + be rejected due to the conflict between package A and package B + noted in package A. -Installing packages (basic end-to-end) flow. - - Packaging metadata is specified by a package list, as far as what - the payload will be, and the properties of the payloads contents, as - well as certain actions that will be acted upon at install time and - removal time. - - All packages will install the appropriate files with the appropriate - permissions and ownership. - - If the package contains a pre-install script, it will be run prior to - the install. - - If the package contains a post-install script, it will be run after - the install. - - If the package is malformed, does not exist, or is incomplete, i.e. - i. missing metadata. - ii. has an incomplete or improperly specified packing list. - iii. is a corrupt archive. - iv. does not match the package checksum recorded . - it will not be installed. +Tertiary functionality -Tertiary functionality: + Keep remote package... + - Precondition: the specified package has a valid libfetch supported + URI (ftp://, http://), or a package origin / basename is specified + with remote fetch requested. -Fetching remote packages: + ... package exists: + - Setup: Create basic package (no special metadata in package list). + Host said package on webserver. + - Test: Install package; request that it be retained after the install. + - PF Criteria: package will be installed; package will be retained + after installation is complete. - If the specified package has a valid libfetch supported URI (ftp://, - http://), or a package origin / basename is specified with remote fetch - requested, then the package will be fetched remotely. + ... missing package on remote endpoint: + - Setup: n/a + - Test: Install package from non-existent URI. + - PF Criteria: package will not be installed; package will not exist + on the disk. - - If the package exists, it will be installed as dictated above. - - If the package doesn't exist or is installed, it . + ... unsupported URI scheme: + - Type: Negative + - Setup: n/a + - Test: Attempt to install package via non-fetch(3) supported URI + (say, gopher:// ?) scheme. + - PF Criteria: The package fetch will fail and the install will fail + with the utility claiming that the URI isn't supported, or something + of the like. Package will not exist on the disk. - Keep package: - - If the package