t_api_search.py revision 1895
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# CDDL HEADER START
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# The contents of this file are subject to the terms of the
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# Common Development and Distribution License (the "License").
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# You may not use this file except in compliance with the License.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# See the License for the specific language governing permissions
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# and limitations under the License.
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# When distributing Covered Code, include this CDDL HEADER in each
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# If applicable, add the following below this CDDL HEADER, with the
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# fields enclosed by brackets "[]" replaced with your own identifying
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# information: Portions Copyright [yyyy] [name of copyright owner]
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# CDDL HEADER END
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenclass TestApiSearchBasics(pkg5unittest.SingleDepotTestCase):
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen open example_pkg@1.0,5.11-0
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen add dir mode=0755 owner=root group=bin path=/bin
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen add dir mode=0755 owner=root group=bin path=/bin/example_dir
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add dir mode=0755 owner=root group=bin path=/usr/lib/python2.6/vendor-packages/OpenSSL
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add file tmp/example_file mode=0555 owner=root group=bin path=/bin/example_path
f7d43647acc6dc80064c8c4cacf5bf86f754c530Timo Sirainen add set name=com.sun.service.incorporated_changes value="6556919 6627937"
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add set name=com.sun.service.random_test value=42 value=79
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add set name=com.sun.service.bug_ids value=4641790 value=4725245 value=4817791 value=4851433 value=4897491 value=4913776 value=6178339 value=6556919 value=6627937
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add set name=com.sun.service.keywords value="sort null -n -m -t sort 0x86 separator"
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add set name=com.sun.service.info_url value=http://service.opensolaris.com/xml/pkg/SUNWcsu@0.5.11,5.11-1:20080514I120000Z
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen add set name=description value='FOOO bAr O OO OOO' value="whee fun"
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add set name='weirdness' value='] [ * ?'
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add signature pkg.sig_bit1=sig_bit_val1 pkg.sig_bit2=sig_bit_val2
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add set name=smf.fmri value=svc:/milestone/multi-user-server:default
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen open example_pkg@1.1,5.11-0
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add dir mode=0755 owner=root group=bin path=/bin
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add file tmp/example_file mode=0555 owner=root group=bin path=/bin/example_path11
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen open incorp_pkg@1.0,5.11-0
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add depend fmri=example_pkg@1.0,5.11-0 type=incorporate
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen open incorp_pkg@1.1,5.11-0
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainen add depend fmri=example_pkg@1.1,5.11-0 type=incorporate
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainen open another_pkg@1.0,5.11-0
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainen add dir mode=0755 owner=root group=bin path=/bazbin
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainen open bad_pkg@1.0,5.11-0
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainen add dir path=badfoo/ mode=0755 owner=root group=bin
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen open space_pkg@1.0,5.11-0
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen add file tmp/example_file mode=0444 owner=nobody group=sys path='unique/with a space'
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add dir mode=0755 owner=root group=bin path=unique_dir
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen open cat@1.0,5.11-0
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen add set name=info.classification value=org.opensolaris.category.2008:System/Security value=org.random:Other/Category
6288d3611eda14a017dae9927b73f46afb646c96Timo Sirainen open cat2@1.0,5.11-0
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen add set name=info.classification value="org.opensolaris.category.2008:Applications/Sound and Video" value=Developer/C
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen open cat3@1.0,5.11-0
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen add set name=info.classification value="org.opensolaris.category.2008:foo/bar/baz/bill/beam/asda"
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen open badcat@1.0,5.11-0
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen add set name=info.classification value="TestBad1/TestBad2"
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen open badcat2@1.0,5.11-0
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen add set name=info.classification value="org.opensolaris.category.2008:TestBad1:TestBad2"
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainenopen fat@1.0,5.11-0
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenadd set name=variant.arch value=sparc value=i386
9e59a1f3f095b3099478562cf3f3970a24736970Timo Sirainenadd set name=description value="i386 variant" variant.arch=i386
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainenadd set name=description value="sparc variant" variant.arch=sparc
2e937ed8585299b2e879a28314902a5f644813d2Timo Sirainenset name=pkg.fmri value=pkg:/bogus_pkg@1.0,5.11-0:20090326T233451Z
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenset name=description value=""validation with simple chains of constraints ""
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenset name=pkg.description value="pseudo-hashes as arrays tied to a "type" (list of fields)"
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainendepend fmri=XML-Atom-Entry
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenset name=com.sun.service.incorporated_changes value="6556919 6627937"
4d25408732be27e91f0430f71e87242760c2517cTimo Sirainen bogus_fmri = fmri.PkgFmri("bogus_pkg@1.0,5.11-0:20090326T233451Z")
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenopen pa/pb/pc/pfoo@1.0,5.11-0
c3412ddeb9abc13f99d3caf50faf76cd99f7e9d2Timo Sirainenopen b1@1.0,5.11-0
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenadd set description="Image Packaging System"
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainenopen b2@1.0,5.11-0
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenadd set description="Image Packaging System"
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen res_8492_1 = set([('pkg:/b1@1.0-0', 'Image Packaging System', 'set name=description value="Image Packaging System"')])
9a06cabdfdf4d5e2f19a07e506c3c7d08a7e7038Timo Sirainen res_8492_2 = set([('pkg:/b2@1.0-0', 'Image Packaging System', 'set name=description value="Image Packaging System"')])
9a06cabdfdf4d5e2f19a07e506c3c7d08a7e7038Timo Sirainen remote_fmri_string = ('pkg:/example_pkg@1.0-0', 'test/example_pkg',
e8a35266a5ceacdfafeeffd6bddae77931ff97ebTimo Sirainen 'set name=pkg.fmri value=pkg://test/example_pkg@1.0,5.11-0:')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.0-0", "basename","file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12")
6843896c40bee4f9b6680ca7ced598c446e9f999Timo Sirainen ("pkg:/example_pkg@1.0-0", "path","file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12")
022412398e56a8f31ef111cfd7271498d64af9a9Timo Sirainen ("pkg:/example_pkg@1.0-0", "path", "dir group=bin mode=0755 owner=root path=bin")
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen ("pkg:/example_pkg@1.0-0", "basename", "dir group=bin mode=0755 owner=root path=usr/lib/python2.6/vendor-packages/OpenSSL")
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.0-0", "4851433", 'set name=com.sun.service.bug_ids value=4641790 value=4725245 value=4817791 value=4851433 value=4897491 value=4913776 value=6178339 value=6556919 value=6627937')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.0-0", "4725245", 'set name=com.sun.service.bug_ids value=4641790 value=4725245 value=4817791 value=4851433 value=4897491 value=4913776 value=6178339 value=6556919 value=6627937')
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen ("pkg:/example_pkg@1.0-0", "6556919 6627937", 'set name=com.sun.service.incorporated_changes value="6556919 6627937"'),
df4018ae2f0a95be602f724ca70df7e0e3bd6a7dTimo Sirainen ("pkg:/example_pkg@1.0-0", "6556919", 'set name=com.sun.service.bug_ids value=4641790 value=4725245 value=4817791 value=4851433 value=4897491 value=4913776 value=6178339 value=6556919 value=6627937')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.0-0", "42", "set name=com.sun.service.random_test value=42 value=79")
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.0-0", "79", "set name=com.sun.service.random_test value=42 value=79")
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.0-0", "sort null -n -m -t sort 0x86 separator", 'set name=com.sun.service.keywords value="sort null -n -m -t sort 0x86 separator"')
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen res_remote_wildcard = res_remote_path.union(set([
2bf7bb14894faf721518e2122a14a2389ef94078Timo Sirainen ('pkg:/example_pkg@1.0-0', 'basename', 'dir group=bin mode=0755 owner=root path=bin/example_dir')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ('pkg:/example_pkg@1.0-0', 'path', 'dir group=bin mode=0755 owner=root path=bin/example_dir'),
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen ('pkg:/example_pkg@1.0-0', 'basename', 'dir group=bin mode=0755 owner=root path=bin/example_dir'),
7f773564b94e6054a40d3785cb63c29f1e4d4deeTimo Sirainen ('pkg:/example_pkg@1.0-0', 'path', 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12')
9a06cabdfdf4d5e2f19a07e506c3c7d08a7e7038Timo Sirainen ('pkg:/example_pkg@1.0-0', 'FOOO bAr O OO OOO', 'set name=description value="FOOO bAr O OO OOO" value="whee fun"')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ('pkg:/example_pkg@1.0-0', '] [ * ?', 'set name=weirdness value="] [ * ?"')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen local_fmri_string = ('pkg:/example_pkg@1.0-0', 'test/example_pkg',
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen 'set name=pkg.fmri value=pkg://test/example_pkg@1.0,5.11-0:')
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen res_local_bug_id = copy.copy(res_remote_bug_id)
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen res_local_inc_changes = copy.copy(res_remote_inc_changes)
df4018ae2f0a95be602f724ca70df7e0e3bd6a7dTimo Sirainen res_local_random_test = copy.copy(res_remote_random_test)
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen res_local_keywords = copy.copy(res_remote_keywords)
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen res_local_wildcard = copy.copy(res_remote_wildcard)
7f3be7d885c75cdd77f536929a45bc9764595960Timo Sirainen res_local_openssl = copy.copy(res_remote_openssl)
7f3be7d885c75cdd77f536929a45bc9764595960Timo Sirainen ("pkg:/example_pkg@1.1-0", "basename", "file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path11 pkg.csize=30 pkg.size=12")
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen ("pkg:/example_pkg@1.1-0", "path", "dir group=bin mode=0755 owner=root path=bin")
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.1-0", "test/example_pkg", "set name=pkg.fmri value=pkg://test/example_pkg@1.1,5.11-0:")
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ("pkg:/example_pkg@1.1-0", "basename", "file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path11 pkg.csize=30 pkg.size=12"),
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen ('pkg:/cat@1.0-0', 'System/Security', 'set name=info.classification value=org.opensolaris.category.2008:System/Security value=org.random:Other/Category')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ('pkg:/cat@1.0-0', 'Other/Category', 'set name=info.classification value=org.opensolaris.category.2008:System/Security value=org.random:Other/Category')
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen ('pkg:/cat2@1.0-0', 'Applications/Sound and Video', 'set name=info.classification value="org.opensolaris.category.2008:Applications/Sound and Video" value=Developer/C')
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen ('pkg:/cat2@1.0-0', 'Developer/C', 'set name=info.classification value="org.opensolaris.category.2008:Applications/Sound and Video" value=Developer/C')
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen ('pkg:/cat3@1.0-0', 'foo/bar/baz/bill/beam/asda', 'set name=info.classification value=org.opensolaris.category.2008:foo/bar/baz/bill/beam/asda')
61f5256ef248d35459b53534ae428bf6d016e1c5Timo Sirainen ('pkg:/fat@1.0-0', 'i386 variant', 'set name=description value="i386 variant" variant.arch=i386'),
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen ('pkg:/fat@1.0-0', 'i386 variant', 'set name=description value="i386 variant" variant.arch=i386'),
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen ('pkg:/fat@1.0-0', 'i386', 'set name=variant.arch value=sparc value=i386'),
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen ('pkg:/fat@1.0-0', 'sparc variant', 'set name=description value="sparc variant" variant.arch=sparc'),
a0b0d629931773c17a236f6214adbe0e13b9b3fdTimo Sirainen ('pkg:/fat@1.0-0', 'sparc', 'set name=variant.arch value=sparc value=i386')
a0b0d629931773c17a236f6214adbe0e13b9b3fdTimo Sirainen fat_10_fmri_string = set([('pkg:/fat@1.0-0', 'test/fat', 'set name=pkg.fmri value=pkg://test/fat@1.0,5.11-0:')])
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen res_remote_fat10_star = fat_10_fmri_string | res_fat10_sparc | res_fat10_i386
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen res_local_fat10_i386_star = res_fat10_i386.union(set([
a0b0d629931773c17a236f6214adbe0e13b9b3fdTimo Sirainen ('pkg:/fat@1.0-0', 'sparc', 'set name=variant.arch value=sparc value=i386')
a0b0d629931773c17a236f6214adbe0e13b9b3fdTimo Sirainen res_local_fat10_sparc_star = res_fat10_sparc.union(set([
a0b0d629931773c17a236f6214adbe0e13b9b3fdTimo Sirainen ('pkg:/fat@1.0-0', 'i386', 'set name=variant.arch value=sparc value=i386')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/space_pkg@1.0-0', 'basename', 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=sys mode=0444 owner=nobody path="unique/with a space" pkg.csize=30 pkg.size=12')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/space_pkg@1.0-0', 'basename', 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=sys mode=0444 owner=nobody path="unique/with a space" pkg.csize=30 pkg.size=12'), ('pkg:/space_pkg@1.0-0', 'path', 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=sys mode=0444 owner=nobody path="unique/with a space" pkg.csize=30 pkg.size=12')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/space_pkg@1.0-0', 'basename', 'dir group=bin mode=0755 owner=root path=unique_dir')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen # This is a copy of the 3.81%2C5.11-0.89%3A20080527T163123Z version of
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen # SUNWgmake from ipkg with the file and liscense actions changed so
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen # that they all take /tmp/example file when sending.
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenopen SUNWgmake@3.81,5.11-0.89
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=sys mode=0755 owner=root path=usr
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/bin
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/gnu
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/gnu/bin
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd link path=usr/gnu/bin/make target=../../bin/gmake
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=sys mode=0755 owner=root path=usr/gnu/share
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/gnu/share/man
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/gnu/share/man/man1
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd link path=usr/gnu/share/man/man1/make.1 target=../../../../share/man/man1/gmake.1
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/sfw
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/sfw/bin
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd link path=usr/sfw/bin/gmake target=../../bin/gmake
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/sfw/share
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/sfw/share/man
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/sfw/share/man/man1
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd link path=usr/sfw/share/man/man1/gmake.1 target=../../../../share/man/man1/gmake.1
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=sys mode=0755 owner=root path=usr/share
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/share/info
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/share/man
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd dir group=bin mode=0755 owner=root path=usr/share/man/man1
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd file tmp/example_file elfarch=i386 elfbits=32 elfhash=68cca393e816e6adcbac1e8ffe9c618de70413e0 group=bin mode=0555 owner=root path=usr/bin/gmake pkg.size=12
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd file tmp/example_file group=bin mode=0444 owner=root path=usr/share/info/make.info pkg.size=12
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd file tmp/example_file group=bin mode=0444 owner=root path=usr/share/info/make.info-1 pkg.size=12
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd file tmp/example_file group=bin mode=0444 owner=root path=usr/share/info/make.info-2 pkg.size=12
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd file tmp/example_file group=bin mode=0444 owner=root path=usr/share/man/man1/gmake.1 pkg.size=12
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd license tmp/example_file license=SUNWgmake.copyright pkg.size=12 transaction_id=1211931083_pkg%3A%2FSUNWgmake%403.81%2C5.11-0.89%3A20080527T163123Z
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd depend fmri=pkg:/SUNWcsl@0.5.11-0.89 type=require
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd depend fmri=SUNWtestbar@0.5.11-0.111 type=require
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd depend fmri=SUNWtestfoo@0.5.11-0.111 type=incorporate
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd set name=description value="gmake - GNU make"
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainenadd legacy arch=i386 category=system desc="GNU make - A utility used to build software (gmake) 3.81" hotline="Please contact your local service provider" name="gmake - GNU make" pkg=SUNWgmake vendor="Sun Microsystems, Inc." version=11.11.0,REV=2008.04.29.02.08
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ("pkg:/SUNWgmake@3.81-0.89", "basename", "link path=usr/sfw/bin/gmake target=../../bin/gmake"),
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/SUNWgmake@3.81-0.89', 'basename', 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 elfarch=i386 elfbits=32 elfhash=68cca393e816e6adcbac1e8ffe9c618de70413e0 group=bin mode=0555 owner=root path=usr/bin/gmake pkg.csize=30 pkg.size=12'),
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/SUNWgmake@3.81-0.89', 'gmake - GNU make', 'set name=description value="gmake - GNU make"')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/SUNWgmake@3.81-0.89', 'require', 'depend fmri=pkg:/SUNWcsl@0.5.11-0.89 type=require')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/SUNWgmake@3.81-0.89', 'require', 'depend fmri=SUNWtestbar@0.5.11-0.111 type=require')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/SUNWgmake@3.81-0.89', 'incorporate', 'depend fmri=SUNWtestfoo@0.5.11-0.111 type=incorporate')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "pkg:/example_pkg@1.0-0"
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "pkg:/example_pkg@1.0-0"
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/example_pkg@1.0-0',
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12'),
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ('pkg:/example_pkg@1.0-0',
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3Timo Sirainen 'a686473102ba73bd7920fc0ab1d97e00a24ed704',
33d63688ed8b26dc333e3c2edbfb2fe6e412604dTimo Sirainen 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen ('pkg:/example_pkg@1.0-0',
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen 'http://service.opensolaris.com/xml/pkg/SUNWcsu@0.5.11,5.11-1:20080514I120000Z',
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen 'set name=com.sun.service.info_url value=http://service.opensolaris.com/xml/pkg/SUNWcsu@0.5.11,5.11-1:20080514I120000Z'),
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ('pkg:/example_pkg@1.0-0',
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12'),
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen ('pkg:/example_pkg@1.0-0',
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12'),
7f3be7d885c75cdd77f536929a45bc9764595960Timo Sirainen ('pkg:/example_pkg@1.0-0',
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen 'a686473102ba73bd7920fc0ab1d97e00a24ed704',
7797aa2479e99aeb71057b7a2584b2cb72e4d3f8Timo Sirainen 'file a686473102ba73bd7920fc0ab1d97e00a24ed704 chash=f88920ce1f61db185d127ccb32dc8cf401ae7a83 group=bin mode=0555 owner=root path=bin/example_path pkg.csize=30 pkg.size=12')
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen 'dir group=bin mode=0755 owner=root path=badfoo/')
3f26c5aced2e71efc783f26bb8a7ac53f7504622Timo Sirainen ("pkg:/pa/pb/pc/pfoo@1.0-0", "test/pa/pb/pc/pfoo", "set name=pkg.fmri value=pkg://test/pa/pb/pc/pfoo@1.0,5.11-0:")
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "VERSION: 2\n",
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "pkg22@1.0,5.11",
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "pkg21@1.0,5.11"
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen "VERSION: 2\n",
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "VERSION: 2\n",
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "pkg0@2.0,5.11",
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen "pkg22@1.0,5.11",
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen "pkg21@1.0,5.11",
a0b0d629931773c17a236f6214adbe0e13b9b3fdTimo Sirainen "pkg1@2.0,5.11"
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen "VERSION: 2\n",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen "pkg0@1.0,5.11",
c84985f66c5c83db642d136aefa8864cb45158cfTimo Sirainen "pkg1@1.0,5.11"
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen ('pkg:/example_pkg@1.0-0',
a8b8cce8569753ed47c94782283a24fb11c5ab52Timo Sirainen 'set name=smf.fmri value=svc:/milestone/multi-user-server:default')
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen fast_add_after_second_update = set(["VERSION: 2\n"])
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen fast_remove_after_second_update = set(["VERSION: 2\n"])
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # We wire the contents of the example file to a well known string
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen # so that the hash is also well known.
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen misc_files = { "tmp/example_file" : "magic banana" }
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen debug_features=self.debug_features, start_depot=True)
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen self.testdata_dir = os.path.join(self.test_root,
4d25408732be27e91f0430f71e87242760c2517cTimo Sirainen "search_results")
4d25408732be27e91f0430f71e87242760c2517cTimo Sirainen self._dir_restore_functions = [self._restore_dir,
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen def _check(self, proposed_answer, correct_answer):
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen self.debug("Proposed Answer: " + str(proposed_answer))
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen self.debug("Correct Answer : " + str(correct_answer))
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen self.assertEqual(correct_answer, proposed_answer)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen (fmri.PkgFmri(str(pkg_name)).get_short_fmri(), piece,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen (fmri.PkgFmri(str(pkg_name)).get_short_fmri())
16aba431c576c1dbd99cbaae4f9d65eea9ad73c2Timo Sirainen for query_num, auth, (version, return_type, pkg_name)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen def _search_op(self, api_obj, remote, token, test_value,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen case_sensitive=False, return_actions=True, num_to_return=None,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen start_point=None, servers=None, prune_versions=True):
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen query = [api.Query(token, case_sensitive, return_actions,
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen self._search_op_common(api_obj, remote, query, test_value,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen def _search_op_multi(self, api_obj, remote, tokens, test_value,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen case_sensitive=False, return_actions=True, num_to_return=None,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen start_point=None, servers=None, prune_versions=True):
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen query = [api.Query(token, case_sensitive, return_actions,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen num_to_return, start_point) for token in tokens]
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_common(api_obj, remote, query, test_value,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen def _search_op_common(self, api_obj, remote, query, test_value,
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen self.debug("Search for: %s" % " ".join([str(q) for q in query]))
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen search_func = lambda x: api_obj.remote_search(x,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen servers=servers, prune_versions=prune_versions)
064bfeee2f9156683b191cc0f3f7b242720942f7Timo Sirainen # servers may not be ready immediately - retry search
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen # operation for 5 seconds
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen except api_errors.ProblematicSearchServers, e:
39775ad03c459efe64cce924658da5094ba417e1Timo Sirainen def _search_op_slow(self, api_obj, remote, token, test_value,
39775ad03c459efe64cce924658da5094ba417e1Timo Sirainen case_sensitive=False, return_actions=True, num_to_return=None,
01cbf4ac5d44137ab434791be7f838d98d0fcf3bTimo Sirainen query = [api.Query(token, case_sensitive, return_actions,
3021a062b16ff0138408be6107d6bcd0ced280b9Timo Sirainen self._search_op_slow_common(api_obj, query, test_value,
1e76a5b92f9d82d557f81f080f3dfad1c9d8f200Timo Sirainen def _search_op_slow_multi(self, api_obj, remote, tokens, test_value,
e5c08648676d1989f6e70b95e5990c26b3e8b96bTimo Sirainen case_sensitive=False, return_actions=True, num_to_return=None,
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen query = [api.Query(token, case_sensitive, return_actions,
39775ad03c459efe64cce924658da5094ba417e1Timo Sirainen num_to_return, start_point) for token in tokens]
39775ad03c459efe64cce924658da5094ba417e1Timo Sirainen self._search_op_slow_common(api_obj, query, test_value,
01cbf4ac5d44137ab434791be7f838d98d0fcf3bTimo Sirainen def _search_op_slow_common(self, api_obj, query, test_value,
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "example_path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "(example_path)",
c35d0c3eb4ba89432896e1f9770ab31cc63c232bTimo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
c35d0c3eb4ba89432896e1f9770ab31cc63c232bTimo Sirainen self._search_op(api_obj, True, "::com.sun.service.info_url:",
2be66b9eddad3841a1195fe9aeb1eaf0f28f1116Timo Sirainen self._search_op(api_obj, True, ":::e* AND *path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "e* AND *path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
b2ecd50bb98c44816cb07c17aa17fae2b425f941Timo Sirainen self._search_op(api_obj, True, "<e*> AND <e*>",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "<e*> OR <e*>",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "exam:::e*path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "exam:::e*path AND e*:::",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "e*::: AND exam:::*path",
7fd72a47d7ddfbd38c8697e228b6951f495dfb61Timo Sirainen self._search_op(api_obj, True, "/bin", self.res_remote_bin)
7fd72a47d7ddfbd38c8697e228b6951f495dfb61Timo Sirainen self._search_op(api_obj, True, "<4851433> AND <4725245>",
c35d0c3eb4ba89432896e1f9770ab31cc63c232bTimo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
c35d0c3eb4ba89432896e1f9770ab31cc63c232bTimo Sirainen self._search_op(api_obj, True, "4851433 AND 4725245",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen "4851433 AND 4725245 OR example_path",
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen "4851433 AND (4725245 OR example_path)",
60d3fa9883237e896a8704275b6116fa46f7ffdaTimo Sirainen "(4851433 AND 4725245) OR example_path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_bug_id | self.res_remote_path)
659fe5d24825b160cae512538088020d97a60239Timo Sirainen self._search_op(api_obj, True, "4851433 OR 4725245",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_bug_id | self.res_remote_bug_id_4725245)
7fd72a47d7ddfbd38c8697e228b6951f495dfb61Timo Sirainen self._search_op(api_obj, True, "\"sort 0x86\"",
7fd72a47d7ddfbd38c8697e228b6951f495dfb61Timo Sirainen self._search_op(api_obj, True, "fooo", self.res_remote_foo)
b2ecd50bb98c44816cb07c17aa17fae2b425f941Timo Sirainen self._search_op(api_obj, True, "fo*", self.res_remote_foo)
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen self._search_op(api_obj, True, "bar", self.res_remote_foo)
7a6b45405fb1544ac476e6eb1402a70cc1ddcdcfTimo Sirainen # Test for bug 11235, case insensitive phrase search, and bug
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen # 11354, mangled fields during phrase search.
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen # These tests are included because a specific bug
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # was found during development. This prevents regression back
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # to that bug. Exit status of 1 is expected because the
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # token isn't in the packages.
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "a_non_existent_token", set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "42 AND 4641790", set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.assertRaises(api_errors.BooleanQueryException,
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op, api_obj, True, "<e*> AND e*", set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.assertRaises(api_errors.BooleanQueryException,
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op, api_obj, True, "e* AND <e*>", set())
1e76a5b92f9d82d557f81f080f3dfad1c9d8f200Timo Sirainen self.assertRaises(api_errors.BooleanQueryException,
36816b5af1472ae76a1909ae3cf29fd614b2ebfcTimo Sirainen self._search_op, api_obj, True, "<e*> OR e*", set())
829c036d4ddfbd9ea49bd8a7c54e3057177d346eTimo Sirainen self.assertRaises(api_errors.BooleanQueryException,
36816b5af1472ae76a1909ae3cf29fd614b2ebfcTimo Sirainen self._search_op, api_obj, True, "e* OR <e*>", set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # Test for bug 15284, \ not being treated as an escape character
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # for : as well as testing that \: when used with field queries
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # works as expected.
dc8552739fa29f011ab71ec383ec6d580a5a9661Timo Sirainen svc_name = "svc\:/milestone/multi-user-server\:default"
2cb565cd978aafd5714792b5161889986d49e431Timo Sirainen "example_pkg:set:smf.fmri:%s %s" % (svc_name, svc_name),
5486e1e123484f3a8d7d895e8ac41156f2a96305Timo Sirainen "example_pkg:set:smf.fmri:%s example_pkg:set:smf.fmri:%s" %
5486e1e123484f3a8d7d895e8ac41156f2a96305Timo Sirainen "%s example_pkg:set:smf.fmri:%s" %
5486e1e123484f3a8d7d895e8ac41156f2a96305Timo Sirainen # Test that a single escaped colon doesn't cause a traceback.
dc8552739fa29f011ab71ec383ec6d580a5a9661Timo Sirainen self._search_op(api_obj, True, "example_path",
dc8552739fa29f011ab71ec383ec6d580a5a9661Timo Sirainen self._search_op(api_obj, True, "::com.sun.service.info_url:",
dc8552739fa29f011ab71ec383ec6d580a5a9661Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen self._search_op(api_obj, True, "exam:::e*path",
4214b59ac7f3899f8d887d055ef519f5a622d249Timo Sirainen self._search_op(api_obj, True, "/bin", self.res_remote_bin)
829c036d4ddfbd9ea49bd8a7c54e3057177d346eTimo Sirainen self._search_op(api_obj, True, "\"sort 0x86\"",
39775ad03c459efe64cce924658da5094ba417e1Timo Sirainen self._search_op(api_obj, True, "fooo", self.res_remote_foo)
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen self._search_op(api_obj, True, "bar", self.res_remote_foo)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # These tests are included because a specific bug
7a6b45405fb1544ac476e6eb1402a70cc1ddcdcfTimo Sirainen # was found during development. This prevents regression back
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen # to that bug.
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen self._search_op(api_obj, True, "a_non_existent_token", set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen outfile = os.path.join(self.testdata_dir, "res")
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen # This finds something because the client side
a614397cf1a4dde152eb1a38493a6ec3d817da16Timo Sirainen # manifest has had the name of the package inserted
a614397cf1a4dde152eb1a38493a6ec3d817da16Timo Sirainen self._search_op(api_obj, False, "example_pkg",
b2ecd50bb98c44816cb07c17aa17fae2b425f941Timo Sirainen self._search_op(api_obj, False, "example_path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, False, "(example_path)",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
01cbf4ac5d44137ab434791be7f838d98d0fcf3bTimo Sirainen self._search_op(api_obj, False, "::com.sun.service.info_url:",
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen self._search_op(api_obj, False, ":::e* AND *path",
343a527f805ca5cce78496b959d6def70e5d0cd4Timo Sirainen self._search_op(api_obj, False, "e* AND *path",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen self._search_op(api_obj, False, "<e*> AND <e*>",
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen self._search_op(api_obj, False, "<e*> OR <e*>",
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen self._search_op(api_obj, False, "exam:::e*path",
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen self._search_op(api_obj, False, "exam:::e*path AND e*:::",
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._search_op(api_obj, False, "e*::: AND exam:::*path",
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self._search_op(api_obj, False, "/bin", self.res_local_bin)
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self._search_op(api_obj, False, "<4851433> AND <4725245>",
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen self._search_op(api_obj, False, "4851433 AND 4725245",
f12aabfeba81f0d741971d2b7e4a5008eb4383caTimo Sirainen "4851433 AND 4725245 OR example_path",
f12aabfeba81f0d741971d2b7e4a5008eb4383caTimo Sirainen "4851433 AND (4725245 OR example_path)",
f12aabfeba81f0d741971d2b7e4a5008eb4383caTimo Sirainen "(4851433 AND 4725245) OR example_path",
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._search_op(api_obj, False, "4851433 OR 4725245",
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.res_local_bug_id | self.res_remote_bug_id_4725245)
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op(api_obj, False, "\"sort 0x86\"",
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op(api_obj, False, "fooo", self.res_local_foo)
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op(api_obj, False, "fo*", self.res_local_foo)
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op(api_obj, False, "bar", self.res_local_foo)
cece2b9cd692c06025cc0a7a0ff54d996a8c90efTimo Sirainen # Test for bug 11235, case insensitive phrase search, and bug
cece2b9cd692c06025cc0a7a0ff54d996a8c90efTimo Sirainen # 11354, mangled fields during phrase search.
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen # These tests are included because a specific bug
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen # was found during development. These tests prevent regression
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen # back to that bug. Exit status of 1 is expected because the
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen # token isn't in the packages.
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self._search_op(api_obj, False, "a_non_existent_token", set())
a10e5606a9e93f49cf13b3a35c8dc3f5d6ab5909Timo Sirainen self._search_op(api_obj, False, "42 AND 4641790", set())
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.assertRaises(api_errors.BooleanQueryException,
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen self._search_op, api_obj, False, "<e*> AND e*", set())
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.assertRaises(api_errors.BooleanQueryException,
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self._search_op, api_obj, False, "e* AND <e*>", set())
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self.assertRaises(api_errors.BooleanQueryException,
3da614c39dd29f536c485089e67839b4cf89fed3Timo Sirainen self._search_op, api_obj, False, "<e*> OR e*", set())
3da614c39dd29f536c485089e67839b4cf89fed3Timo Sirainen self.assertRaises(api_errors.BooleanQueryException,
0a6f8311541ae59381171620b77f82be58be562eTimo Sirainen self._search_op, api_obj, False, "e* OR <e*>", set())
34d2ee1fa2b299267fcefd378f80690e7f601dfbTimo Sirainen # Test for bug 15284, \ not being treated as an escape character
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen # for : as well as testing that \: when used with field queries
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen # works as expected.
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen svc_name = "svc\:/milestone/multi-user-server\:default"
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen "example_pkg:set:smf.fmri:%s %s" % (svc_name, svc_name),
022412398e56a8f31ef111cfd7271498d64af9a9Timo Sirainen "example_pkg:set:smf.fmri:%s example_pkg:set:smf.fmri:%s" %
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen "%s example_pkg:set:smf.fmri:%s" %
022412398e56a8f31ef111cfd7271498d64af9a9Timo Sirainen # Test that a single escaped colon doesn't cause a traceback.
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen outfile = os.path.join(self.testdata_dir, "res")
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen # This finds something because the client side
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen # manifest has had the name of the package inserted
022412398e56a8f31ef111cfd7271498d64af9a9Timo Sirainen self._search_op(api_obj, False, "example_pkg",
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, False, "example_path",
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, False, "::com.sun.service.info_url:",
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
022412398e56a8f31ef111cfd7271498d64af9a9Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op(api_obj, False, "exam:::e*path",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op(api_obj, False, "/bin", self.res_local_bin)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op(api_obj, False, "\"sort 0x86\"",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op(api_obj, False, "fooo", self.res_local_foo)
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen self._search_op(api_obj, False, "bar", self.res_local_foo)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # These tests are included because a specific bug
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # was found during development. These tests prevent regression
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # back to that bug.
755fe6da51ab7f54aa1d86913cb344bffef60e79Timo Sirainen self._search_op(api_obj, False, "a_non_existent_token", set())
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen outfile = os.path.join(self.testdata_dir, "res")
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen # This finds something because the client side
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen # manifest has had the name of the package inserted
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self._search_op_slow(api_obj, False, "example_pkg",
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self._search_op_slow(api_obj, False, "example_path",
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self._search_op_slow(api_obj, False, "(example_path)",
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self._search_op_slow(api_obj, False, "<exam*:::>",
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen "::com.sun.service.info_url:",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_slow(api_obj, False, ":::e* AND *path",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_slow(api_obj, False, "e* AND *path",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen self._search_op_slow(api_obj, False, "<e*> AND <e*>",
d31c4d7c161f9d7efa59964c7c958e83e05b218cTimo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_slow(api_obj, False, "<e*> OR <e*>",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_slow(api_obj, False, "<exam:::>",
755fe6da51ab7f54aa1d86913cb344bffef60e79Timo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_slow(api_obj, False, "exam:::e*path",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._search_op_slow(api_obj, False, "exam:::e*path AND e*:::",
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self._search_op_slow(api_obj, False, "e*::: AND exam:::*path",
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self._search_op_slow(api_obj, False, "example*",
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self._search_op_slow(api_obj, False, "/bin", self.res_local_bin)
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self._search_op_slow(api_obj, False, "4851433",
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self._search_op_slow(api_obj, False, "<4851433> AND <4725245>",
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self.res_local_pkg_ret_pkg, return_actions=False)
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self._search_op_slow(api_obj, False, "4851433 AND 4725245",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen "4851433 AND 4725245 OR example_path",
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen "4851433 AND (4725245 OR example_path)",
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen "(4851433 AND 4725245) OR example_path",
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op_slow(api_obj, False, "4851433 OR 4725245",
912e870dcab2dadac8a6b20b42367999cdd8b5a1Timo Sirainen self.res_local_bug_id | self.res_remote_bug_id_4725245)
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op_slow(api_obj, False, "6556919",
b8765f6093ab35fc2345293d78132d35794cbff5Timo Sirainen self._search_op_slow(api_obj, False, "65569??",
b8765f6093ab35fc2345293d78132d35794cbff5Timo Sirainen self._search_op_slow(api_obj, False, "separator",
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op_slow(api_obj, False, "\"sort 0x86\"",
d31c4d7c161f9d7efa59964c7c958e83e05b218cTimo Sirainen self._search_op_slow(api_obj, False, "*example*",
319944c0f35b311c998854e96d6463a084fd90aeTimo Sirainen self._search_op_slow(api_obj, False, "fooo", self.res_local_foo)
1e76a5b92f9d82d557f81f080f3dfad1c9d8f200Timo Sirainen self._search_op_slow(api_obj, False, "fo*", self.res_local_foo)
907723f35f4d3dfc774ca42d00a8a7b8ef90dd5dTimo Sirainen self._search_op_slow(api_obj, False, "bar", self.res_local_foo)
907723f35f4d3dfc774ca42d00a8a7b8ef90dd5dTimo Sirainen self._search_op_slow(api_obj, False, "openssl",
cdaf255d6a3daeef0ac85edaa60bfa6d1f945bffTimo Sirainen self._search_op_slow(api_obj, False, "OPENSSL",
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen self._search_op_slow(api_obj, False, "OpEnSsL",
7f3be7d885c75cdd77f536929a45bc9764595960Timo Sirainen self._search_op_slow(api_obj, False, "OpEnS*",
2ae575a66f2a302f047f6de062a70b75f8bebc7bTimo Sirainen # These tests are included because a specific bug
2ae575a66f2a302f047f6de062a70b75f8bebc7bTimo Sirainen # was found during development. These tests prevent regression
cdaf255d6a3daeef0ac85edaa60bfa6d1f945bffTimo Sirainen # back to that bug. Exit status of 1 is expected because the
1e76a5b92f9d82d557f81f080f3dfad1c9d8f200Timo Sirainen # token isn't in the packages.
2ae575a66f2a302f047f6de062a70b75f8bebc7bTimo Sirainen self._search_op_slow(api_obj, False, "a_non_existent_token",
7a6b45405fb1544ac476e6eb1402a70cc1ddcdcfTimo Sirainen def _run_remove_root_search(self, search_func, remote, api_obj, ip):
7a6b45405fb1544ac476e6eb1402a70cc1ddcdcfTimo Sirainen search_func(api_obj, remote, [ip + "example_pkg"], set())
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen search_func(api_obj, remote, [ip + "bin/example_path"],
73b50eecfc31750a312e2f940023f522eb07178cTimo Sirainen search_func(api_obj, remote, ["(%sbin/example_path)" % ip],
7f3be7d885c75cdd77f536929a45bc9764595960Timo Sirainen search_func(api_obj, remote, ["<%sexam*:::>" % ip],
7a6b45405fb1544ac476e6eb1402a70cc1ddcdcfTimo Sirainen ["::%scom.sun.service.info_url:" % ip], set())
b08b33d1f5ce3721dc2d83586c9cb0ca141331fdTimo Sirainen ["(4851433 AND 4725245) OR :file::%sbin/example_path" % ip],
c9fe52d819c608b890620f7fe36ff509b14eb350Timo Sirainen [":::%sbin/example_path OR (4851433 AND 4725245)" % ip],
c9fe52d819c608b890620f7fe36ff509b14eb350Timo Sirainen ["%sbin/example_path OR %sbin/example_path" % (ip, ip)],
e9d68b41c007f0e545de361f8012f6f231bfec8bTimo Sirainen ["<::path:%sbin/example_path> OR <(a AND b)>" % ip],
7f3be7d885c75cdd77f536929a45bc9764595960Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
71a74e26cf070a205d31cf6c6fae003f90027b63Timo Sirainen self.res_remote_pkg_ret_pkg, return_actions=False)
71a74e26cf070a205d31cf6c6fae003f90027b63Timo Sirainen # The tests below here are for testing that multiple queries
a393d9d6dabdc46cf724f8cb004a652b4036d53dTimo Sirainen # to search return the results from both queries (bug 10365)
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen [":::%sbin/example_path" % ip, "(4851433 AND 4725245)"],
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen ["(4851433 AND 4725245)", ":::%sbin/example_path" % ip],
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen def _run_local_tests_example11_installed(self, api_obj):
6843896c40bee4f9b6680ca7ced598c446e9f999Timo Sirainen outfile = os.path.join(self.testdata_dir, "res")
6843896c40bee4f9b6680ca7ced598c446e9f999Timo Sirainen # This finds something because the client side
1dd9801f7ace40777ecf8ed9a98c093bc40467a4Timo Sirainen # manifest has had the name of the package inserted
b428c5993b01f4cffacdd24377ca2873fcc12184Timo Sirainen self._search_op(api_obj, False, "example_pkg",
f0569d9fbb25c8437760be69f194595a841ad711Timo Sirainen self._search_op(api_obj, False, "example_path", set())
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen self._search_op(api_obj, False, "example_path11",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, False, "example_pkg", set())
b2ecd50bb98c44816cb07c17aa17fae2b425f941Timo Sirainen self._search_op(api_obj, False, "example_path", set())
1e76a5b92f9d82d557f81f080f3dfad1c9d8f200Timo Sirainen self._search_op(api_obj, False, "example*", set())
1cd97699af9c77d8f5920832ec3374884544fd68Timo Sirainen self._search_op(api_obj, False, "/bin", set())
907723f35f4d3dfc774ca42d00a8a7b8ef90dd5dTimo Sirainen self._search_op(api_obj, True, "example_pkg", set())
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen self._search_op(api_obj, True, "example_path", set())
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen self._search_op(api_obj, True, "example*", set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, True, "*unique*", set())
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen def _restore_dir_preserve_hash(index_dir, index_dir_tmp):
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen portable.remove(os.path.join(index_dir_tmp, tmp_file))
a2637488c8d514ec1ac3914811deee814f9761b3Timo Sirainen shutil.move(os.path.join(index_dir, tmp_file),
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen fh = open(os.path.join(index_dir_tmp, ss.MAIN_FILE), "r")
02b79f9c2636da1829eee5b92753602bba8b67edTimo Sirainen fh = open(os.path.join(index_dir_tmp, tmp_file), "r+")
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # Overwrite the existing version number.
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # By definition, the version 0 is never used.
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen index_dir = os.path.join(self.img_path, "var","pkg","index")
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen # Overwrite the existing version number.
e68309fcfa2eaa88217fd51e7b4900fc9c20ef5dTimo Sirainen # By definition, the version 0 is never used.
d31c4d7c161f9d7efa59964c7c958e83e05b218cTimo Sirainen def _overwrite_on_disk_format_version_number(file_path):
d31c4d7c161f9d7efa59964c7c958e83e05b218cTimo Sirainen # Overwrite the existing version number.
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen # By definition, the version 0 is never used.
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen def _overwrite_on_disk_format_version_number_with_letter(file_path):
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen # Overwrite the existing version number.
9d2040fbb941f411d57fd850b4cdc3b1cccc1168Timo Sirainen # By definition, the version 0 is never used.
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen file_path = os.path.join(dir, ss.BYTE_OFFSET_FILE)
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen def validateAssertRaises(ex_type, validate_func, func, *args, **kwargs):
f5b919e9b07dfd9d2401b998ef8759e5f0312719Timo Sirainen raise RuntimeError("Didn't raise expected exception.")
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen def _check_err(e, expected_str, expected_code):
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen raise RuntimeError("Got wrong code, expected %s got "
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen raise RuntimeError("Got unexpected error message of:\n"
8166e8a706078efc71923719ca285e84902883c0Timo Sirainenclass TestApiSearchBasicsP(TestApiSearchBasics):
8166e8a706078efc71923719ca285e84902883c0Timo Sirainen # Only start/stop the depot once (instead of for every test)
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen TestApiSearchBasics.__init__(self, *args, **kwargs)
f87702d8d147f66d3fb6c41e5695c67f6d00612eTimo Sirainen def pkgsend_bulk(self, durl, pkg, optional=True):
09b9cbde9e7a0f9adea1fb054a7c62f35ad901e1Timo Sirainen if pkg not in self.sent_pkgs or optional == False:
09b9cbde9e7a0f9adea1fb054a7c62f35ad901e1Timo Sirainen TestApiSearchBasics.pkgsend_bulk(self, durl, pkg)
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen """Test remote search."""
f5b919e9b07dfd9d2401b998ef8759e5f0312719Timo Sirainen # This should be a full test to test all functionality.
f5b919e9b07dfd9d2401b998ef8759e5f0312719Timo Sirainen self._search_op(api_obj, True, ":file::", self.res_remote_file)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen """Install one package, and run the search suite."""
b8bbfab97eed17fcb00b5a86128e1d7a3babc35cTimo Sirainen """Install one package, and run the search suite."""
fc1696e32dd732a5bbabc3c8f64810448e327043Timo Sirainen self._api_install(api_obj, ["example_pkg@1.0"])
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen index_dir = os.path.join(self.img_path, "var","pkg","index")
6a1e4eb2c6a267bec1e8704ce9137bebb7792702Timo Sirainen def test_040_repeated_install_uninstall(self):
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen """Install and uninstall a package. Checking search both
8907d617ce7c4f390c0f42f6f694db2fecdd5775Timo Sirainen after each change to the image."""
99be58a447b69d62cbd9e764000a06226b9c9c89Timo Sirainen # During development, the index could become corrupted by
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen # repeated installing and uninstalling a package. This
39775ad03c459efe64cce924658da5094ba417e1Timo Sirainen # tests if that has been fixed.
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen self._api_install(api_obj, ["example_pkg@1.0"])
5edfc0f1c3c55e906d8316d9cdeaa3b0c7000c19Timo Sirainen """Test local case sensitive search"""
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._api_install(api_obj, ["example_pkg@1.0"])
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, False, "fooo", set(), True)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, False, "fo*", set(), True)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, False, "bar", set(), True)
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen self._search_op(api_obj, False, "FOOO", self.res_local_foo,
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._search_op(api_obj, False, "bAr", self.res_local_foo, True)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen """Test to check for stack trace when files missing.
98c1cf256927e254f0c092acd2ddcd7ea50bd009Timo Sirainen self._api_install(api_obj, ["example_pkg@1.0"])
299183fbb6ec5d0828a0880da372540421ac4665Timo Sirainen index_dir = os.path.join(self.img_path, "var","pkg","index")
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen for d in query_parser.TermQuery._get_gdd(index_dir).values():
7d207b1e77a7b5e3fda640e353acfc86d261fedfTimo Sirainen self.assertRaises(api_errors.InconsistentIndexException,
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen "exam:::example_pkg", [])
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen # Run the shell version once to check that no
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen # stack trace happens.
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen self._search_op(api_obj, False, "exam:::example_pkg",
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen """Test to check for stack trace when files missing.
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen self._api_install(api_obj, ["example_pkg@1.0"])
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen index_dir = os.path.join(self.img_path, "var","pkg","index")
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen for d in query_parser.TermQuery._get_gdd(index_dir).values():
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen self.assertRaises(api_errors.InconsistentIndexException,
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen "exam:::example_pkg", [])
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen # Run the shell version once to check that no
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen # stack trace happens.
06fc140d5f0b03524e63a15d45d1cdc8b691372cTimo Sirainen self._search_op(api_obj, False, "example_pkg",
06fc140d5f0b03524e63a15d45d1cdc8b691372cTimo Sirainen self._api_uninstall, api_obj, ["example_pkg"])
fcfd317f7eb1f0216764c75c5fab3555020552d4Timo Sirainen self._search_op(api_obj, False, "example_pkg", set())
b3febb0933fdce10394d25093e23ce0a5aadddd3Timo Sirainen self._search_op(api_obj, False, "example_pkg",
fcfd317f7eb1f0216764c75c5fab3555020552d4Timo Sirainen ffh = ss.IndexStoreSetHash(ss.FULL_FMRI_HASH_FILE)
aa38d1a0945f0bc13a225d043f53fad2eec666b1Timo Sirainen ffh_path = os.path.join(index_dir, ffh.get_file_name())
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self.assertRaises(api_errors.IncorrectIndexFileHash,
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen self._search_op, api_obj, False, "example_pkg", set())
e06c0b65c16ccce69bbee009ead14d7d3d17a256Timo Sirainen # Run the shell version of the test to check for a stack trace.
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self.pkg("search -l 'exam:::example_pkg'", exit=1)
aa38d1a0945f0bc13a225d043f53fad2eec666b1Timo Sirainen self._search_op(api_obj, False, "example_pkg",
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen self.assertRaises(api_errors.WrapSuccessfulIndexingException,
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._api_uninstall, api_obj, ["example_pkg"])
b225c3c65f360d7b833f09f9b2fb3035ed5ea600Timo Sirainen self._search_op(api_obj, False, "example_pkg", set())
e06c0b65c16ccce69bbee009ead14d7d3d17a256Timo Sirainen """Test strange patterns to ensure they're handled correctly"""
ed14c2db5436d6d89aa65bc8e09af0c316359553Timo Sirainen self._search_op(api_obj, True, "[*]", self.res_remote_weird)
ed14c2db5436d6d89aa65bc8e09af0c316359553Timo Sirainen self._search_op(api_obj, True, "[?]", self.res_remote_weird)
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, True, "[[]", self.res_remote_weird)
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, True, "[]]", self.res_remote_weird)
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, True, "FO[O]O", self.res_remote_foo)
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, True, "FO[?O]O", self.res_remote_foo)
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, True, "FO[*O]O", self.res_remote_foo)
1d3f7c1278168d5b1cbfa9a2cc9929a0909056b4Timo Sirainen self._search_op(api_obj, True, "FO[]O]O", self.res_remote_foo)
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen """Test that installing a package doesn't prevent searching on
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen package names from working on previously installed packages."""
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen tmp_dir = os.path.join(self.img_path, "var", "pkg", "index",
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen """Install one package, and run the search suite."""
f6699a08521aacc4c2bb5b6175691dad5f715f8cTimo Sirainen api_obj = self.image_create(durl, variants=variants)
c263e92d73889da530b308c9ab28b4b74031550eTimo Sirainen """Install one package, and run the search suite."""
9e59a1f3f095b3099478562cf3f3970a24736970Timo Sirainen api_obj = self.image_create(durl, variants=variants)
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen """Checks if directories ending in / break the indexer."""
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen """Checks whether the fallback of removing the image root works.
e05ea8311ae16687295048e88ca205dfe29fbcbfTimo Sirainen Also tests whether multiple queries submitted via the api work.
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # Do remote searches
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._run_remove_root_search(self._search_op_multi, True,
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # Do local searches
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._run_remove_root_search(self._search_op_multi, False,
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen index_dir = os.path.join(self.img_path, "var","pkg","index")
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen # Do slow local searches
84e1634acc701d14e358e27f1beff5ad74f5004aTimo Sirainen self._run_remove_root_search(self._search_op_slow_multi, False,
345212e8f61ebf14ff4f80df26df9e655eb5121eTimo Sirainen """Checks if things with spaces break the indexer."""
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.pkgsend_bulk(durl, self.space_pkg10, optional=False)
b6d817f0effeff645aadc01fd468a7d4084ba1f2Timo Sirainen self._search_op(api_obj, remote, 'with', set())
b6d817f0effeff645aadc01fd468a7d4084ba1f2Timo Sirainen self._search_op(api_obj, remote, 'space', set())
b6d817f0effeff645aadc01fd468a7d4084ba1f2Timo Sirainen self._search_op(api_obj, remote, 'unique_dir',
a486ed03dce069ff60ab5a65d0ae24a1862f22fcTimo Sirainen self._search_op(api_obj, remote, 'with', set())
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen self._search_op(api_obj, remote, 'space', set())
db7c9201c88e3d9bee10485194ee5b0c67249916Timo Sirainen self.pkgsend_bulk(durl, self.space_pkg10, optional=False)
db7c9201c88e3d9bee10485194ee5b0c67249916Timo Sirainen # Need to add install of subsequent package and
022412398e56a8f31ef111cfd7271498d64af9a9Timo Sirainen # local side search as well as remote
db7c9201c88e3d9bee10485194ee5b0c67249916Timo Sirainen self._search_op(api_obj, remote, 'with', set())
9aa52288a4b53186d81b0ec9afa7d9e0a8ee8753Timo Sirainen self._search_op(api_obj, remote, 'space', set())
9aa52288a4b53186d81b0ec9afa7d9e0a8ee8753Timo Sirainen self._search_op(api_obj, remote, 'unique_dir',
32d9a75612a5df455e4169b56538bb31dfe359e4Timo Sirainen """Check that disabling indexing works as expected"""
32d9a75612a5df455e4169b56538bb31dfe359e4Timo Sirainen self._api_install(api_obj, ["example_pkg"], update_index=False)
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen self._api_uninstall(api_obj, ["example_pkg"], update_index=False)
0b17b95357d5d73d941f1eb4ca9fc543bc510e42Timo Sirainen # Running empty test because search will notice the index
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen # does not match the installed packages and complain.
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen self.assertRaises(api_errors.IncorrectIndexFileHash,
7d207b1e77a7b5e3fda640e353acfc86d261fedfTimo Sirainen self._search_op, api_obj, False, "example_pkg", set())
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._api_image_update(api_obj, update_index=False)
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen # Running empty test because search will notice the index
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen # does not match the installed packages and complain.
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen self.assertRaises(api_errors.IncorrectIndexFileHash,
0b17b95357d5d73d941f1eb4ca9fc543bc510e42Timo Sirainen self._search_op, api_obj, False, "example_pkg", set())
0b17b95357d5d73d941f1eb4ca9fc543bc510e42Timo Sirainen self._run_local_tests_example11_installed(api_obj)
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen # Running empty test because search will notice the index
04ab375449dd97eed50ada88dd0df2abab01cfeeTimo Sirainen # does not match the installed packages and complain.
f1901fd21906911f7be075c965ac882f6a87b4c3Timo Sirainen self.assertRaises(api_errors.IncorrectIndexFileHash,
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._search_op, api_obj, False, "example_pkg", set())
0b17b95357d5d73d941f1eb4ca9fc543bc510e42Timo Sirainen index_dir, index_dir_tmp = self._get_index_dirs()
ccb70ccfd9a25e490aab46d15d9b8323ad9ea3bfTimo Sirainen self._api_uninstall, api_obj, ["example_pkg"])
dcd50ecbfe796bd76f2d63483c534cc0e4e94164Timo Sirainen index_dir, index_dir_tmp = self._get_index_dirs()
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._api_uninstall, api_obj, ["another_pkg"])
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._api_install(api_obj, ["example_pkg@1.0,5.11-0"])
345212e8f61ebf14ff4f80df26df9e655eb5121eTimo Sirainen index_dir, index_dir_tmp = self._get_index_dirs()
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._api_uninstall, api_obj, ["example_pkg"])
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen index_dir, index_dir_tmp = self._get_index_dirs()
30975737820f5855e2c26d81b574ae5f03a05407Timo Sirainen self._api_install(api_obj, ["example_pkg@1.0,5.11-0"])
2d39dc1a453546892109b35c0d9770369011a13dTimo Sirainen """Tests whether categories are indexed and searched for
2d39dc1a453546892109b35c0d9770369011a13dTimo Sirainen correctly."""
8f8315e4b4e27ead12dd1c3da65bf4dee3762f18Timo Sirainen self._search_op(api_obj, remote, "System/Security",
8f8315e4b4e27ead12dd1c3da65bf4dee3762f18Timo Sirainen self._search_op(api_obj, remote, "Other/Category",
d9de52132072d80b8c268094b879c0ef5a108db3Timo Sirainen self._search_op(api_obj, remote, "Applications",
9aa52288a4b53186d81b0ec9afa7d9e0a8ee8753Timo Sirainen self._search_op(api_obj, remote, "Sound and Video",
d9de52132072d80b8c268094b879c0ef5a108db3Timo Sirainen # This is a test for bug 11002 which ensures that the
7e0bb2b365cc38645313a3513fa79bd32d34b63cTimo Sirainen # unquoting is being performed correctly.
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen "'Applications/Sound%20and%20Video'",
4d10cf8c7879ccd377e7fb136913b2a258ba8d93Timo Sirainen self._search_op(api_obj, remote, "Developer/C",
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen "foo/bar/baz/bill/beam/asda", self.res_cat3_pkg10,
ccb70ccfd9a25e490aab46d15d9b8323ad9ea3bfTimo Sirainen """Checks whether incremental update generates wrong
7e0bb2b365cc38645313a3513fa79bd32d34b63cTimo Sirainen additional lines."""
ccb70ccfd9a25e490aab46d15d9b8323ad9ea3bfTimo Sirainen tok_file = os.path.join(ind_dir, ss.BYTE_OFFSET_FILE)
ccb70ccfd9a25e490aab46d15d9b8323ad9ea3bfTimo Sirainen main_file = os.path.join(ind_dir, ss.MAIN_FILE)
ccb70ccfd9a25e490aab46d15d9b8323ad9ea3bfTimo Sirainen self.pkgsend_bulk(durl, self.example_pkg10, optional=False)
dda2c506c8fc8ac2f88272de4523ded42baa0aa0Timo Sirainen # Since the server now adds a set action for the FMRI to
aa0647f2debf0d48d504a321186f66c85596aaf4Timo Sirainen # manifests during publication, there should be one
aa0647f2debf0d48d504a321186f66c85596aaf4Timo Sirainen # additional line for the token file.
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen """Test for known bug 983."""
b3febb0933fdce10394d25093e23ce0a5aadddd3Timo Sirainen self.pkgsend_bulk(durl, self.bug_983_manifest)
59ef34eafaf74d31ed88af444b22d1a0738a30aaTimo Sirainen self._search_op(api_obj, True, "gmake", self.res_bug_983)
59ef34eafaf74d31ed88af444b22d1a0738a30aaTimo Sirainen self._search_op(api_obj, True, "SUNWcsl@0.5.11-0.89",
b3febb0933fdce10394d25093e23ce0a5aadddd3Timo Sirainen self._search_op(api_obj, True, "SUNWtestbar@0.5.11-0.111",
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen self._search_op(api_obj, True, "SUNWtestfoo@0.5.11-0.111",
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen self._search_op(api_obj, True, "depend:require:",
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen self.res_983_csl_dependency | self.res_983_bar_dependency)
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen self._search_op(api_obj, True, "depend:incorporate:",
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen self.res_983_csl_dependency | self.res_983_bar_dependency |
9d0e1fa945103f2875cdf6d18b2013809f566ea7Timo Sirainen """Tests that an automatic reindexing is detected by the test
181c1aff950e6f8e0556f8974e79d0747845ac0fTimo Sirainen index_dir = os.path.join(self.img_path, "var","pkg","index")
181c1aff950e6f8e0556f8974e79d0747845ac0fTimo Sirainen query_parser.TermQuery._get_gdd(index_dir).values()[0].\
2c7ab05ef98c46eb70c8ba6ea85e49749aafb2a3Timo Sirainen self.assertRaises(api_errors.WrapSuccessfulIndexingException,
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen self._api_uninstall, api_obj, ["example_pkg"])
2c7ab05ef98c46eb70c8ba6ea85e49749aafb2a3Timo Sirainen """Tests that field queries and phrase queries work together.
ccb70ccfd9a25e490aab46d15d9b8323ad9ea3bfTimo Sirainen self._search_op(api_obj, True, "set::'image packaging'",
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen self._search_op(api_obj, True, "b1:set::'image packaging'",
4b41116563110d00330896a568eff1078c382827Timo Sirainen self._search_op(api_obj, False, "set::'image packaging'",
4b41116563110d00330896a568eff1078c382827Timo Sirainen self._search_op(api_obj, False, "b2:set::'image packaging'",
4b41116563110d00330896a568eff1078c382827Timo Sirainen self._search_op(api_obj, True, "set::'image packaging'",
4b41116563110d00330896a568eff1078c382827Timo Sirainen self._search_op(api_obj, True, "b1:set::'image packaging'",
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen """Test that a corrupt query doesn't break the server."""
d756ebcfa96bd7cff02097c8f26df9df368b81b1Timo Sirainen expected_string = _("A query is expected to have five fields: "
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen "case sensitivity, return type, number of results to "
013e3b3942e9550fde619a0b3ce6bdd04edc4268Timo Sirainen "return, the number at which to start returning results, "
013e3b3942e9550fde619a0b3ce6bdd04edc4268Timo Sirainen "and the text of the query. The query provided lacked at "
5fb3bff645380804c9db2510940c41db6b8fdb01Timo Sirainen "least one of those fields:")
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen """Test that a corrupt case_sensitive value doesn't break the "
uuids = []
pkg_list = []
def _remove_extra_info(v):
pkg_list = []
for p in pkg_list:
add dir mode=0755 owner=root group=bin path=/bin/example_dir
'set name=pkg.fmri value=pkg://test2/example_pkg@1.0,5.11-0:')
return True
res = []
if err:
act)),)
except err, e:
return res
raise RuntimeError(
if remote:
c_uuid = None
raise RuntimeError(
"path=bin/example_dir")]))
"path=bin/example_dir")]),