src/tests/cli/t_pkg_image_update.py
author Shawn Walker-Salas <shawn.walker@oracle.com>
Fri, 26 Feb 2016 22:51:53 -0800
changeset 3317 81fca2c09539
parent 3311 d7bb9c5f4baa
child 3339 c88573eb98ea
permissions -rw-r--r--
21122796 pkg __comb_common_version branch sort can lead to odd ordering
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1505
diff changeset
     1
#!/usr/bin/python
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     2
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     3
# CDDL HEADER START
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     4
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     8
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    11
# See the License for the specific language governing permissions
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    12
# and limitations under the License.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    13
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    19
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    20
# CDDL HEADER END
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    21
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    22
3311
d7bb9c5f4baa 15748266 SUNBT7140688 pkg authority --help --> traceback
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3277
diff changeset
    23
# Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    24
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    25
import testutils
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    26
if __name__ == "__main__":
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    27
        testutils.setup_environment("../../../proto")
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1516
diff changeset
    28
import pkg5unittest
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    29
2931
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
    30
from pkg.client.pkgdefs import *
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
    31
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
    32
import hashlib
2931
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
    33
import os
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
    34
import random
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    35
import unittest
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    36
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
    37
import pkg.misc as misc
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
    38
3317
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
    39
class NoTestImageUpdate(pkg5unittest.ManyDepotTestCase):
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    40
        # Only start/stop the depot once (instead of for every test)
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1516
diff changeset
    41
        persistent_setup = True
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
    42
        need_ro_data = True
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    43
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    44
        foo10 = """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    45
            open [email protected],5.11-0
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    46
            add dir mode=0755 owner=root group=bin path=/lib
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    47
            close """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    48
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    49
        foo11 = """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    50
            open [email protected],5.11-0
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    51
            add dir mode=0755 owner=root group=bin path=/lib
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    52
            close """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    53
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    54
        bar10 = """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    55
            open [email protected],5.11-0
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    56
            add dir mode=0755 owner=root group=bin path=/bin
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    57
            close """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    58
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    59
        bar11 = """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    60
            open [email protected],5.11-0
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    61
            add dir mode=0755 owner=root group=bin path=/bin
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    62
            close """
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
    63
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    64
        baz10 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    65
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    66
            add dir mode=0755 owner=root group=bin path=/lib
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    67
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    68
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    69
        baz11 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    70
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    71
            add dir mode=0755 owner=root group=bin path=/lib
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    72
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    73
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    74
        qux10 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    75
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    76
            add depend type=require fmri=pkg:/[email protected]
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    77
            add dir mode=0755 owner=root group=bin path=/lib
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    78
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    79
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    80
        qux11 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    81
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    82
            add depend type=require fmri=pkg:/[email protected]
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    83
            add dir mode=0755 owner=root group=bin path=/lib
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    84
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    85
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    86
        quux10 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    87
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    88
            add depend type=require fmri=pkg:/[email protected]
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    89
            add dir mode=0755 owner=root group=bin path=/usr
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    90
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    91
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    92
        quux11 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    93
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    94
            add depend type=require fmri=pkg:/[email protected]
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    95
            add dir mode=0755 owner=root group=bin path=/usr
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    96
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    97
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    98
        corge10 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
    99
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   100
            add dir mode=0755 owner=root group=bin path=/bin
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   101
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   102
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   103
        corge11 = """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   104
            open [email protected],5.11-0
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   105
            add dir mode=0755 owner=root group=bin path=/bin
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   106
            close """
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   107
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   108
        incorp10 = """
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   109
            open [email protected],5.11-0
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   110
            add depend type=incorporate [email protected]
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   111
            add depend type=incorporate [email protected]
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   112
            add set name=pkg.depend.install-hold value=test
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   113
            close """
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   114
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   115
        incorp11 = """
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   116
            open [email protected],5.11-0
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   117
            add depend type=incorporate [email protected]
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   118
            add depend type=incorporate [email protected]
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   119
            add set name=pkg.depend.install-hold value=test
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   120
            close """
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   121
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   122
        elftest1 = """
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   123
            open [email protected]
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   124
            add file {0} mode=0755 owner=root group=bin path=/bin/true
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   125
            close """
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   126
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   127
        elftest2 = """
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   128
            open [email protected]
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   129
            add file {0} mode=0755 owner=root group=bin path=/bin/true
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   130
            close """
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   131
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   132
        # An example of dueling incorporations for an upgrade case.
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   133
        dueling_inst = """
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   134
            open [email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   135
            add set name=pkg.depend.install-hold value=core-os
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   136
            add depend fmri=consolidation/java-7/java-7-incorporation type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   137
            add depend facet.version-lock.consolidation/java-7/java-7-incorporation=true fmri=consolidation/java-7/[email protected] type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   138
            add depend fmri=consolidation/java-7/[email protected] type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   139
            add depend fmri=consolidation/osnet/osnet-incorporation type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   140
            add depend facet.version-lock.consolidation/osnet/osnet-incorporation=true fmri=consolidation/osnet/[email protected] type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   141
            add depend fmri=consolidation/osnet/[email protected] type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   142
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   143
            open consolidation/java-7/[email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   144
            add depend fmri=runtime/java/[email protected],5.11 type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   145
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   146
            open consolidation/osnet/[email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   147
            add set name=pkg.depend.install-hold value=core-os.osnet
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   148
            add depend fmri=pkg:/system/resource-mgmt/[email protected],5.12-5.12.0.0.0.45.25345 type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   149
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   150
            open runtime/java/[email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   151
            add depend fmri=consolidation/java-7/java-7-incorporation type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   152
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   153
            open system/resource-mgmt/[email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   154
            add depend fmri=consolidation/osnet/osnet-incorporation type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   155
            add depend fmri=pkg:/runtime/java/[email protected] type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   156
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   157
        """
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   158
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   159
        dueling_latest = """
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   160
            open consolidation/osnet/[email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   161
            add set name=pkg.depend.install-hold value=core-os.osnet
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   162
            add depend fmri=pkg:/system/resource-mgmt/[email protected],5.12-5.12.0.0.0.46.25205 type=incorporate
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   163
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   164
            open runtime/java/[email protected]
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   165
            add depend fmri=consolidation/java-7/java-7-incorporation type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   166
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   167
            open system/resource-mgmt/[email protected],5.12-5.12.0.0.0.46.25205
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   168
            add depend fmri=consolidation/osnet/osnet-incorporation type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   169
            add depend fmri=pkg:/runtime/java/[email protected] type=require
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   170
            close
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   171
        """
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   172
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   173
        def setUp(self):
1736
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1715
diff changeset
   174
                # Two repositories are created for test2.
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1516
diff changeset
   175
                pkg5unittest.ManyDepotTestCase.setUp(self, ["test1", "test2",
3277
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   176
                    "test2", "test4", "test5", "nightly"], image_count=2)
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   177
                self.rurl1 = self.dcs[1].get_repo_url()
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   178
                self.rurl2 = self.dcs[2].get_repo_url()
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   179
                self.rurl3 = self.dcs[3].get_repo_url()
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   180
                self.rurl4 = self.dcs[4].get_repo_url()
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   181
                self.rurl5 = self.dcs[5].get_repo_url()
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   182
                self.rurl6 = self.dcs[6].get_repo_url()
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   183
                self.pkgsend_bulk(self.rurl1, (self.foo10, self.foo11,
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   184
                    self.baz11, self.qux10, self.qux11, self.quux10,
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   185
                    self.quux11, self.corge11, self.incorp10, self.incorp11))
1736
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1715
diff changeset
   186
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   187
                self.pkgsend_bulk(self.rurl2, (self.foo10, self.bar10,
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   188
                    self.bar11, self.baz10, self.qux10, self.qux11,
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   189
                    self.quux10, self.quux11, self.corge10))
1736
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1715
diff changeset
   190
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1715
diff changeset
   191
                # Copy contents of repository 2 to repos 4 and 5.
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1715
diff changeset
   192
                for i in (4, 5):
2028
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   193
                        self.copy_repository(self.dcs[2].get_repodir(),
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   194
                                self.dcs[i].get_repodir(),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   195
                                { "test1": "test{0:d}".format(i) })
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   196
                        self.dcs[i].get_repo(auto_create=True).rebuild()
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   197
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   198
                self.pkgsend_bulk(self.rurl6, (self.dueling_inst,
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   199
                    self.dueling_latest))
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   200
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   201
        def test_image_update_bad_opts(self):
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   202
                """Test update with bad options."""
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   203
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   204
                self.image_create(self.rurl1, prefix="test1")
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   205
                self.pkg("update -@", exit=2)
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   206
                self.pkg("update -vq", exit=2)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   207
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   208
        def test_01_after_pub_removal(self):
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   209
                """Install packages from multiple publishers, then verify that
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   210
                removal of the second publisher will not prevent an
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   211
                update."""
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   212
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   213
                self.image_create(self.rurl1, prefix="test1")
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   214
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   215
                # Install a package from the preferred publisher.
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   216
                self.pkg("install [email protected]")
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   217
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   218
                # Install a package from a second publisher.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   219
                self.pkg("set-publisher -O {0} test2".format(self.rurl2))
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   220
                self.pkg("install [email protected]")
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   221
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   222
                # Remove the publisher of an installed package, then add the
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   223
                # publisher back, but with an empty repository.  An update
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   224
                # should still be possible.
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   225
                self.pkg("unset-publisher test2")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   226
                self.pkg("set-publisher -O {0} test2".format(self.rurl3))
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   227
                self.pkg("update -nv")
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   228
1431
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   229
                # Add two publishers with the same packages as a removed one;
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   230
                # an update should be possible despite the conflict (as
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   231
                # the newer versions will simply be ignored).
1431
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   232
                self.pkg("unset-publisher test2")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   233
                self.pkg("set-publisher -O {0} test4".format(self.rurl4))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   234
                self.pkg("set-publisher -O {0} test5".format(self.rurl5))
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   235
                self.pkg("update -nv")
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   236
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   237
                # Remove one of the conflicting publishers. An update
1431
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   238
                # should still be possible even though the conflicts no longer
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   239
                # exist and the original publisher is unknown (see bug 6856).
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   240
                self.pkg("unset-publisher test4")
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   241
                self.pkg("update -nv")
988
a851ba83a5aa 6654 pkg list state incorrect after publisher removal when another publisher has it
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 581
diff changeset
   242
1431
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   243
                # Remove the remaining test publisher.
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   244
                self.pkg("unset-publisher test5")
62b6033670e4 10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents: 1158
diff changeset
   245
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   246
        def test_02_update_multi_publisher(self):
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   247
                """Verify that updates work as expected when different
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   248
                publishers offer the same package."""
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   249
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1736
diff changeset
   250
                self.image_create(self.rurl1, prefix="test1")
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   251
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   252
                # First, verify that the preferred status of a publisher will
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   253
                # not affect which source is used for update when two
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   254
                # publishers offer the same package and the package publisher
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   255
                # was preferred at the time of install.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   256
                self.pkg("set-publisher -P -O {0} test2".format(self.rurl2))
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   257
                self.pkg("install [email protected]")
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   258
                self.pkg("info [email protected] | grep test2")
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   259
                self.pkg("set-publisher -P test1")
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   260
                self.pkg("update -v", exit=4)
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1431
diff changeset
   261
                self.pkg("info [email protected] | grep test1", exit=1)
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   262
                self.pkg("uninstall foo")
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   263
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   264
                # Next, verify that the preferred status of a publisher will
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   265
                # not cause an upgrade of a package if the newer version is
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   266
                # offered by the preferred publisher and the package publisher
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   267
                # was not preferred at the time of isntall and was not used
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   268
                # to install the package.
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   269
                self.pkg("install [email protected]")
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   270
                self.pkg("info [email protected] | grep test2")
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   271
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   272
                # Finally, cleanup and verify no packages are installed.
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1431
diff changeset
   273
                self.pkg("uninstall '*'")
1158
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   274
                self.pkg("list", exit=1)
78582c4403a9 8616 operations should use same publisher when only non-preferred has package
Shawn Walker <srw@sun.com>
parents: 988
diff changeset
   275
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   276
        def test_03_update_specific_packages(self):
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   277
                """Verify that update only updates specified packages."""
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   278
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   279
                self.image_create(self.rurl1, prefix="test1")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   280
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   281
                # Install a package from the preferred publisher.
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   282
                self.pkg("install [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   283
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   284
                # Install a package from a second publisher.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   285
                self.pkg("set-publisher -O {0} test2".format(self.rurl2))
2089
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   286
                self.pkg("install [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   287
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   288
                # Update just bar, and then verify foo wasn't updated.
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   289
                self.pkg("update bar")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   290
                self.pkg("info [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   291
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   292
                # Now update bar back to 1.0 and then verify that update '*',
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   293
                # update '*@*', or update without arguments will update all
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   294
                # packages.
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   295
                self.pkg("update [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   296
                self.pkg("install [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   297
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   298
                self.pkg("update")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   299
                self.pkg("info [email protected] [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   300
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   301
                self.pkg("update *@1.0")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   302
                self.pkg("info [email protected] [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   303
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   304
                self.pkg("update '*'")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   305
                self.pkg("info [email protected] [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   306
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   307
                self.pkg("update [email protected] [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   308
                self.pkg("info [email protected] [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   309
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   310
                self.pkg("update '*@*'")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   311
                self.pkg("info [email protected] [email protected] [email protected]")
c8b9d6341530 2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
   312
2224
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   313
                # Now rollback everything to 1.0, and then verify that
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   314
                # '@latest' will take everything to the latest version.
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   315
                self.pkg("update '*@1.0'")
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   316
                self.pkg("info [email protected] [email protected] [email protected]")
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   317
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   318
                self.pkg("update '*@latest'")
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   319
                self.pkg("info [email protected] [email protected] [email protected]")
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2089
diff changeset
   320
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   321
        def test_upgrade_sticky(self):
2420
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   322
                """Test that when a package specified on the command line can't
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   323
                be upgraded because of a sticky publisher, the exception raised
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   324
                is correct."""
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   325
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   326
                self.image_create(self.rurl2)
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   327
                self.pkg("install foo")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   328
                self.pkg("set-publisher -p {0}".format(self.rurl1))
2420
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   329
                self.pkg("update [email protected]", exit=1)
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   330
                self.assert_("test1" in self.errout)
d60e5533affb 18536 confusing message when failing to update package from sticky publisher
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2224
diff changeset
   331
2931
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   332
        def test_nothingtodo(self):
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   333
                """Test that if we have multiple facets of equal length that
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   334
                we don't accidently report that there are image updates when
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   335
                there are not."""
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   336
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   337
                facet_max = 1000
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   338
                facet_fmt = "{{0:{0:d}d}}".format(len("{0:d}".format(facet_max)))
2931
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   339
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   340
                facet_set = set()
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   341
                random.seed()
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   342
                self.image_create()
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   343
                for i in range(15):
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   344
                        facet = facet_fmt.format(random.randint(0, facet_max))
2931
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   345
                        if facet in facet_set:
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   346
                                # skip dups
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   347
                                continue
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   348
                        facet_set.add(facet)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   349
                        self.pkg("change-facet {0}=False".format(facet))
2931
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   350
                        self.pkg("update -nv", exit=EXIT_NOP)
0ff136776beb 17306428 imageplan always finds change when facets are set
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2681
diff changeset
   351
3025
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   352
        def test_ignore_missing(self):
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   353
                """Test that update shows correct behavior w/ and w/o
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   354
                   --ignore-missing."""
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   355
                self.image_create(self.rurl1)
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   356
                self.pkg("update missing", exit=1)
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   357
                self.pkg("update --ignore-missing missing", exit=4)
c2f7cdceff60 15722809 need support for recursive linked image operations
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 2931
diff changeset
   358
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   359
        def test_content_policy(self):
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   360
                """ Test the content-update-policy property. When set to
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   361
                'when-required' content should only be updated if the content
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   362
                hash has changed, if set to 'always' content should be updated
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   363
                if there is any file change at all."""
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   364
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   365
                def get_test_sum(fname=None):
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   366
                        """ Helper to get sha256 sum of installed test file."""
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   367
                        if fname is None:
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   368
                                fname = os.path.join(self.get_img_path(),
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   369
                                    "bin/true")
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   370
                        fsum , data = misc.get_data_digest(fname,
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   371
                            hash_func=hashlib.sha256)
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   372
                        return fsum
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   373
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   374
                # Elftest1 and elftest2 have the same content and the same size,
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   375
                # just different entries in the comment section. The content
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   376
                # hash for both is the same, however the file hash is different.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   377
                elftest1 = self.elftest1.format(os.path.join("ro_data",
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   378
                    "elftest.so.1"))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   379
                elftest2 = self.elftest2.format(os.path.join("ro_data",
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   380
                    "elftest.so.2"))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   381
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   382
                # get the sha256 sums from the original files to distinguish
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   383
                # what actually got installed
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   384
                elf1sum = get_test_sum(fname=os.path.join(self.ro_data_root,
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   385
                    "elftest.so.1"))
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   386
                elf2sum = get_test_sum(fname=os.path.join(self.ro_data_root,
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   387
                    "elftest.so.2"))
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   388
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   389
                elf1, elf2 = self.pkgsend_bulk(self.rurl1, (elftest1, elftest2))
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   390
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   391
                # prepare image, install [email protected] and verify
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   392
                self.image_create(self.rurl1)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   393
                self.pkg("install -v {0}".format(elf1))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   394
                self.pkg("contents -m {0}".format(elf1))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   395
                self.assertEqual(elf1sum, get_test_sum())
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   396
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   397
                # test default behavior (always update)
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   398
                self.pkg("update -v elftest")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   399
                self.pkg("contents -m {0}".format(elf2))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   400
                self.assertEqual(elf2sum, get_test_sum())
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   401
                # reset and start over
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   402
                self.pkg("uninstall elftest")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   403
                self.pkg("install -v {0}".format(elf1))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   404
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   405
                # set policy to when-required, file shouldn't be updated
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   406
                self.pkg("set-property content-update-policy when-required")
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   407
                self.pkg("update -v elftest")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   408
                self.pkg("list {0}".format(elf2))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   409
                self.assertEqual(elf1sum, get_test_sum())
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   410
                # reset and start over
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   411
                self.pkg("uninstall elftest")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   412
                self.pkg("install -v {0}".format(elf1))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   413
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   414
                # set policy to always, file should be updated now
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   415
                self.pkg("set-property content-update-policy always")
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   416
                self.pkg("update -v elftest")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   417
                self.pkg("list {0}".format(elf2))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   418
                self.assertEqual(elf2sum, get_test_sum())
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   419
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   420
                # do tests again for downgrading, test file shouldn't change
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   421
                self.pkg("set-property content-update-policy when-required")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   422
                self.pkg("update -v {0}".format(elf1))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   423
                self.pkg("list {0}".format(elf1))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   424
                self.assertEqual(elf2sum, get_test_sum())
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   425
                # reset and start over
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   426
                self.pkg("uninstall elftest")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   427
                self.pkg("install -v {0}".format(elf2))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   428
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   429
                # set policy to always, file should be updated now
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   430
                self.pkg("set-property content-update-policy always")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   431
                self.pkg("update -v {0}".format(elf1))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3094
diff changeset
   432
                self.pkg("list {0}".format(elf1))
3054
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   433
                self.assertEqual(elf1sum, get_test_sum())
37c6fdddacac 15615267 ability to require updates based on complete content
Erik Trauschke <Erik.Trauschke@oracle.com>
parents: 3025
diff changeset
   434
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   435
        def test_dueling_incs(self):
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   436
                """Verify that dueling incorporations don't result in a 'no
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   437
                solution' error in a case sometimes found with 'nightly'
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   438
                upgrades."""
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   439
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   440
                self.image_create(self.rurl6)
3277
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   441
                self.image_clone(1)
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   442
                self.pkg("change-facet "
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   443
                    "version-lock.consolidation/osnet/osnet-incorporation=false")
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   444
                self.pkg("install [email protected] "
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   445
                    "[email protected] "
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   446
                    "system/resource-mgmt/[email protected]")
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   447
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   448
                # Failure is expected for these cases because an installed
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   449
                # incorporation prevents the upgrade of an installed dependency
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   450
                # required by the new packages.
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   451
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   452
                # Should fail and result in 'no solution' because user failed to
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   453
                # specify any input.
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   454
                self.pkg("update -nv", exit=1, assert_solution=False)
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   455
                self.assert_("No solution" in self.errout)
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   456
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   457
                # Should fail, but not result in 'no solution' because user
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   458
                # specified a particular package.
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   459
                self.pkg("update -nv osnet-incorporation@latest", exit=1)
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   460
                self.assert_("No matching version" in self.errout)
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   461
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   462
                # Should exit with 'nothing to do' since update to new version
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   463
                # of osnet-incorporation is not possible.
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   464
                self.pkg("update -nv osnet-incorporation", exit=4)
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   465
3277
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   466
                # A pkg update (with no arguments) should not fail if we are a
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   467
                # linked image child because we're likely constrained by our
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   468
                # parent dependencies.
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   469
                self.pkg("attach-linked --linked-md-only -p system:foo "
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   470
                    "{0}".format(self.img_path(1)))
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   471
                self.pkg("update -nv", exit=4)
1d44a3c7c415 21211465 zoneadm attach -U tries to overcome GZ constraints and fails
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 3158
diff changeset
   472
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   473
3317
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   474
class TestIDROps(pkg5unittest.SingleDepotTestCase):
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   475
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   476
        need_ro_data = True
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   477
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   478
        idr_comb = """
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   479
            open pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20160225T115559Z 
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   480
            add set name=pkg.description value="test package"
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   481
            add dir path=tmp/hello owner=root group=sys mode=555
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   482
            close
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   483
            open pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1.1697.1:20160225T115610Z 
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   484
            add set name=pkg.description value="test package"
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   485
            add dir path=tmp/hello owner=root group=sys mode=555
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   486
            add depend type=require fmri=idr1697@1
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   487
            close
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   488
            open pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20160225T115616Z 
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   489
            add set name=pkg.description value="test package"
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   490
            add dir path=tmp/hello owner=root group=sys mode=555
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   491
            close
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   492
            open pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20160225T115622Z 
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   493
            add set name=pkg.description value="test package"
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   494
            add dir path=tmp/hello owner=root group=sys mode=555
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   495
            close
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   496
            open pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20141203T103418Z
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   497
            add set name=pkg.description value="This incorporation constrains packages for the opscenter enterprise and proxy controller."
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   498
            add depend fmri=management/em-sysmgmt-ecpc/[email protected] type=incorporate
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   499
            add depend fmri=management/em-sysmgmt-ecpc/[email protected] type=incorporate
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   500
            add depend fmri=management/em-sysmgmt-ecpc/[email protected] type=incorporate
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   501
            close
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   502
            open pkg://test/idr1697@1
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   503
            add set name=pkg.description value="idr package"
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   504
            add dir path=tmp/hello owner=root group=sys mode=555
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   505
            add depend type=incorporate fmri=management/em-sysmgmt-ecpc/[email protected]
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   506
            close"""
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   507
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   508
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   509
        def setUp(self):
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   510
                pkg5unittest.SingleDepotTestCase.setUp(self)
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   511
                self.pkgsend_bulk(self.rurl, self.idr_comb)
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   512
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   513
        def test_idr_application(self):
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   514
                """Verify branch versioning that might that might lead to odd
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   515
                ordering of the possible FMRIs will not be erroneously trimmed
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   516
                during installation or removal."""
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   517
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   518
                self.image_create(self.rurl)
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   519
                self.pkg("install opscenter-ecpc-incorporation")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   520
                self.pkg("list -afv em-oc-common")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   521
                # If branch versioning ordering is working correctly, the next
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   522
                # two packages should be installable.
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   523
                self.pkg("install pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20160225T115559Z")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   524
                self.pkg("install pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20160225T115616Z")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   525
                # If branch ordering is broken, only this package will be
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   526
                # instalable.
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   527
                self.pkg("install pkg://test/management/em-sysmgmt-ecpc/em-oc-common")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   528
                self.pkg("list -afv em-oc-common")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   529
                # If branch ordering is broken, the upgrade will fail because
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   530
                # em-oc-common won't be installable despite removal of the idr.
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   531
                self.pkg("update --reject pkg://test/idr1697@1 "
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   532
                    "pkg://test/management/em-sysmgmt-ecpc/[email protected],5.11-0.1:20160225T115616Z")
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   533
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   534
81fca2c09539 21122796 pkg __comb_common_version branch sort can lead to odd ordering
Shawn Walker-Salas <shawn.walker@oracle.com>
parents: 3311
diff changeset
   535
class NoTestPkgUpdateOverlappingPatterns(pkg5unittest.SingleDepotTestCase):
2681
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   536
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   537
        a_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   538
            open [email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   539
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   540
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   541
        pub2_a_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   542
            open pkg://pub2/[email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   543
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   544
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   545
        a_11 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   546
            open [email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   547
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   548
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   549
        a_2 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   550
            open [email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   551
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   552
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   553
        pub2_a_2 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   554
            open pkg://pub2/[email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   555
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   556
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   557
        a_3 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   558
            open [email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   559
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   560
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   561
        aa_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   562
            open [email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   563
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   564
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   565
        aa_2 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   566
            open [email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   567
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   568
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   569
        afoo_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   570
            open a/[email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   571
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   572
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   573
        bfoo_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   574
            open b/[email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   575
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   576
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   577
        fooa_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   578
            open foo/[email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   579
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   580
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   581
        foob_1 = """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   582
            open foo/[email protected],5.11-0
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   583
            close """
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   584
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   585
        def test_overlapping_patterns_one_stem_update(self):
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   586
                self.pkgsend_bulk(self.rurl, self.a_1 + self.a_2 + self.a_11)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   587
                api_inst = self.image_create(self.rurl)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   588
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   589
                self._api_install(api_inst, ["[email protected]"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   590
                self._api_update(api_inst, pkgs_update=["a@latest", "a@2"],
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   591
                    noexecute=True)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   592
                self.pkg("update [email protected] a@2", exit=1)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   593
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   594
        def test_overlapping_patterns_multi_stems_update(self):
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   595
                self.pkgsend_bulk(self.rurl, self.a_1 + self.a_11 + self.a_2 +
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   596
                    self.aa_1 + self.aa_2)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   597
                api_inst = self.image_create(self.rurl)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   598
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   599
                self._api_install(api_inst, ["[email protected]", "[email protected]"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   600
                self._api_update(api_inst, pkgs_update=["*", "[email protected]"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   601
                self.pkg("list [email protected] [email protected]")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   602
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   603
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   604
                self._api_install(api_inst, ["[email protected]", "[email protected]"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   605
                self._api_update(api_inst, pkgs_update=["*", "[email protected]", "a*@2"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   606
                self.pkg("list [email protected] [email protected]")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   607
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   608
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   609
        def test_overlapping_patterns_multi_publisher_update(self):
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   610
                self.pkgsend_bulk(self.rurl, self.a_1 + self.a_2 +
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   611
                    self.aa_1 + self.aa_2 + self.pub2_a_1 + self.pub2_a_2)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   612
                api_inst = self.image_create(self.rurl)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   613
                self.pkg("set-publisher -P test")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   614
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   615
                # Test that naming a specific publisher and stem will override
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   616
                # the general wildcard.
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   617
                self._api_install(api_inst, ["a@1", "aa@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   618
                self.pkg("update '*' 'pkg://pub2/a@1'")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   619
                self.pkg("list -Hv pkg://pub2/a@1 pkg://test/aa@2")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   620
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   621
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   622
                # Test that naming a specific publisher will correctly change
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   623
                # the publisher of the installed package.
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   624
                self._api_install(api_inst, ["a@1", "aa@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   625
                self.pkg("update 'pkg://pub2/*@1'")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   626
                self.pkg("list -Hv pkg://pub2/a@1 pkg://test/aa@1")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   627
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   628
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   629
                # Test that a specific publisher and stem will override an
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   630
                # unspecified publisher with a specific stem.
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   631
                self._api_install(api_inst, ["a@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   632
                self.pkg("update 'a@1' 'pkg://pub2/a@1'")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   633
                self.pkg("list -Hv pkg://pub2/a@1")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   634
                self.pkg("update 'a@2' '//test/a@2'")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   635
                self.pkg("list -Hv pkg://test/a@2")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   636
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   637
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   638
                self._api_install(api_inst, ["a@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   639
                self.pkg("update 'a@1' 'pkg://pub2/a@2'", exit=1)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   640
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   641
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   642
                # Test that a specific publisher with a wildcard will override a
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   643
                # unspecified publisher with a wildcard.
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   644
                self._api_install(api_inst, ["a@1", "aa@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   645
                self.pkg("update '*' 'pkg://pub2/*@1'")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   646
                self.pkg("list -Hv pkg://pub2/a@1 pkg://test/aa@2")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   647
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   648
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   649
                # Test that a specific stem without a specific publisher
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   650
                # overrides a specific publisher without a specific stem.
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   651
                self._api_install(api_inst, ["a@1", "aa@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   652
                self.pkg("update '*' 'pkg://pub2/*@1' 'a@2'")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   653
                self.pkg("list -Hv pkg://test/a@2 pkg://test/aa@2")
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   654
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   655
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   656
                # Test that conflicting publishers results in an error.
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   657
                self._api_install(api_inst, ["a@1", "aa@1"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   658
                self.pkg("update '*' 'pkg://pub2/a@1' 'pkg://test/a@2'", exit=1)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   659
                self.pkg("update '*' 'pkg://pub2/*@1' 'pkg://test/*@2'", exit=1)
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   660
                self._api_uninstall(api_inst, ["*"])
29aba686b970 7140060 install and update should allow multiple pattern matches when they intersect
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2420
diff changeset
   661
3094
15de2efea709 15618618 solver plan errors could explain incorporation-related failures better
Shawn Walker <shawn.walker@oracle.com>
parents: 3054
diff changeset
   662
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   663
if __name__ == "__main__":
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   664
        unittest.main()