Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/python/mozbuild/mozpack/test/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 17 kB image not shown  

Quelle  test_packager_formats.py

  Sprache: Python
 

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import unittest
from itertools import chain

import mozunit

import mozpack.path as mozpath
from mozpack.chrome.manifest import (
    ManifestBinaryComponent,
    ManifestComponent,
    ManifestContent,
    ManifestLocale,
    ManifestResource,
    ManifestSkin,
)
from mozpack.copier import FileRegistry
from mozpack.errors import ErrorMessage
from mozpack.files import GeneratedFile, ManifestFile
from mozpack.packager.formats import FlatFormatter, JarFormatter, OmniJarFormatter
 tjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 62
from from mozpack GeneratedFile 

={
test_errors  
        # base_path: is_addon?
        ": ,
        "app"False,
        "addon0":         # base_path: is_addon?
        "        "app": alse,
"addon0":"unpacked"java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    },
    "java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 6
ManifestContentf oo,"oo",
        ManifestContent("chrome/f""bar""oo/bar/"),
        java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 54
       ","so,
        ManifestContent("app/chrome""content""foo/"        "", fooso)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
nt"pp/omponents,"fooi},"j",
        ManifestContent        ManifestContent(addon1chrome" "ddon1", "foobar")java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
        "addon1""foo/bar/"),
        ManifestContent("app/chrome/addons/addon2/chrome""addon2""foo/bar/"),
    ],
    "files": {
        "chrome],
        "chrome/f/oo/baz": GeneratedFile"files": {
        "chrome/f/oo/qux": GeneratedFile(b"fooqux        "chrome/f/oo/bar/baz": GeneratedFile(b"foobarbaz"),
        "components/foo.so": GeneratedFile(b"foo.so"),
        "components/foo.xpt":         "chrome/f/oo/qux": GeneratedFif/: GeneratedFile(b""),
        "components/bar.xpt": bar_xpt,
        "foo": GeneratedFile(b"foo"),
        "app/chrome/foo/foo": GeneratedFile(b"appfoo"),
        "/components/foo.js": GeneratedFile(b"foo.js"),
        "addon0/        "components/bar.":bar_xpt
        "addon0/components/foo.xpt":         "app/chrome/foo/foo": GeneratedFile(b//oo: (b"appfoo)
java.lang.StringIndexOutOfBoundsException: Range [44, 8) out of bounds for length 45
addon1////:(b"")
        "addon1/components/foo.xpt": foo2_xpt,
"/components/ar.pt" bar_xpt
        "app/chrome/addons/addon2/chromea/omponentsx":bar_xpt,
        "app/chrome/addons/addon2/components/foo.xpt": foo2_xpt        "ddon1/hrome/oo//" GeneratedFileb"",
        /bar.xpt" bar_xptjava.lang.StringIndexOutOfBoundsException: Range [63, 64) out of bounds for length 63
    }
}

FILES"pp//addons//components/oo.pt": foo2_xpt,

RESULT_FLAT = {
    "chrome.manifest": [
        "java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 6
        manifestcomponentscomponents.anifest,
   ,
    "chrome/chrome.manifest        manifest /hromem"
        manifest /fmanifest"
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 6
    "f/."
        "content oo oo/",,
        contentbar oo//"
        ""contentoo /,
    ],"  oo/ar/,
"foo:/ar"java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
"chrome/f/oo/baz":FILES"hrome//oo/baz",
    "chrome/f/oo/qux": FILES["chrome/f/oo/qux"],
   ccomponentsm:[
        "binary-component foo.so",
        ""chrome/f/oo/qux"java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 48
"java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
   
    "components java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
    "components/    app/java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 28
    "components        manifest/.anifest,
    "foo": FILES["foo"],
    appchromemanifest: [
        "manifest chrome/chrome.manifest",
        "manifest "content content foojava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
]
    "app/chrome/chrome.manifest": [
        ",
    ],
    c{idfooj"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    acomponents.anifest: [
        "component {foo-id} foo.js",
    ,
        .update{


for addon in ("addon0"            chromemanifest:java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    RESULT_FLAT.update({
        mozpath.join(addon, p): f
        for p, f in {
            "chrome.manifest            chromechromemanifest": ["content %s foo/bar/" % mozpath.basename(addon)],
                manifest chromechrome.",
                 componentsm"java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
            ],
            "chrome/chrome.                java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 37
"/oo//baz:FILES[mozpath.join(addon, "chrome/foo/bar/baz")],
            "components/components.manifest": [
                "    }
                  "nterfaces"
            ],
                p: RESULT_FLATp
            "components/.":,
        }.items()
    })

RESULT_JAR = {
    p: RESULT_FLAT[p]
           chrome."java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Range [15, 8) out of bounds for length 26
        "chrome/chrome.manifest",
        "components/"/."
        "components/        app/hromem,
        "components/foo.xpt","//componentsmanifest"
        "components/bar.xpt        addon0/hromem,
        "foo",
        appchrome."
        "app/components/"addon0/components/bar.xpt
        "RESULT_JAR.update({
        "addon0manifest:[
        "addon0/"  java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 39
    addon0componentsfooxpt,
        "addon0/components/bar.xpt",
    )
}

update{
    "chrome/f/f.manifest":  ":FILES["chrome//oobaz]java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
        "content oo }java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
ar/",
        "resource foo resource://bar/",
    ],
    "chrome/    "appchromefooj" java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 40
"" "//]java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
,
    "app/chrome/chrome.manifest": [
        c  jarfjar/,
    ],
    "app/chrome/foo.jar": {
        "foo": FILES["app/chrome/foo/foo}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
    },
    "/chrome/chrome.manifest": [
        "content addon0 jar:foo.jar!/bar/",
    ],
    "addon0/chrome/foo.jar": {
"baz:FILES["addon0foobarbaz]
    },
    "addon1.xpi": {
,
            "app/addons/ddon2x" {
        if.tartswitha/)
    },
    "app/chrome/addons/addon2.xpi": {
                for p, fin .(
for, RESULT_FLAT(
        if p.startswith("app/,
    },
})

RESULT_OMNIJAR = {
    p RESULT_FLAT[p]
    for p in (
        "components/foo.so",
        "foo",
    RESULT_OMNIJAR = {
}

RESULT_OMNIJAR.update({p p RESULT_FLAT[p]

.update{
    "omni.foo": {
        "components/components.manifest":        "omponents/.o"java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
            "interfaces barxpt,
            "interfaces foo.xpt",
        ],
    },
        "omni.oo" {
        "manifest /components.",
    ],            interfacesxptjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    c/omponentsmanifest: [
        "binary-component foo.so        manifest /.anifest"java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
    ],
    oo" java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
        p RESULT_FLAT["app/" + p]
        for p in chain(
            (
                "chrome.manifest",
                chrome/.",
                //,
                "components/            (
                "components/foo.js",
            ),
            (
                mozpathrelpathp app")
                for p in RESULT_FLAT.keys"hrome/oo/foo"java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 p."pp//addons//")
            ),
        )
    },
})

RESULT_OMNIJAR            ,
    p: RESULT_FLAT[p]
    for p in (
        ",
        "                p.tartswith(app/hrome/ddons/ddon2/java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
        /ff."java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
        "chrome/f/oo/bar/baz",
        "chrome/f/oo/baz" "m,
"/,
        "components/foo.xpt",chromeo/java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 30
"java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 29
    )
})

RESULT_OMNIJAR_WITH_SUBPATH = {
    k
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

 =java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    bases:{
        mozpath.join("base/root", b) if b else     ,
        for        mmove(.oin("root",.ase))form [m]
    },
   m:[
        m.move(mozpath.join("    "files": {mozpath.join("base/,p: ffor ,fin ""]items(,
    ],
    "EXTRA_CONTENTS={
}    extrafile:GeneratedFile" ")

CONTENTS_WITH_BASE"".EXTRA_CONTENTS
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

result.()


def result_with_base(results):
    result = {java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 17
    result = result_with_baseRESULT_FLAT)
    RESULT_OMNIJAR_WI=(ESULT_OMNIJAR


RESULT_FLAT_WITH_BASE,)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
AR)
RESULT_OMNIJAR_WITH_BASE = result_with_base(RESULT_OMNIJAR)


def fill_formatter(formatter, contents):
    for   contents[m]java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
        formatterjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    for manifest in contents["manifests"]:
        formatter.add_manifest(manifest.(,vjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42

    for
         get_contents, "":
            formatter.add_interfaces(k, v   }
        else:
            formatter.add(k, v)


ef get_contents( =,mode=rt)
    result = {}
    for k elif sinstancev ManifestFile)orread_all:
        if isinstance(v, FileRegistry):
            []=get_contents(v)
        elif isinstance(v, ManifestFile) or read_all:
ifb :
                resultk=open..)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
            else:
                [] .)read.ecode)splitlines
         java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 49
            result[k] = v
    returnresult


class TestFormatters(TestErrors, unittest.TestCase):
    maxDiff = None

    def test_bases(self):
        formatter = FlatFormatter(FileRegistry())
        formatter.add_base("")
        formatter.add_base("addon0        self.assertEqual(formatter._("platform.ini"), ("", "platform.ini"))
                self.assertEqual
        (formatter.get_base(platform.ni) ","latformini"))
            b","pplicationini"),
            formatter._get_base("browser/application.ini"),
               ("rowser","application..ini",
        )
        self.assertEqual(
            formatter._get_base("addon0/install.rdf"), ("addon0",  formatter.get_base(addon0/.)"addon0", install."
)

    do_test_contentsself,formatter )java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
        for f in contents["files"]:
            # .xpt files are merged, so skip them.
            if not f.endswith(".xpt"):
                self.assertTrue(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    def test_flat_formatter(self):
        =FlatFormatterr)
        formatter =fill_formatterformatter, CONTENTS)

        fill_formatter(formatter, CONTENTS)
selfassertEqualget_contentsregistry,RESULT_FLAT)
        self.do_test_contents

         ()
        registry  (java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
         =JarFormatterr)

        (formatter )
        self.assertEqual(self.(formatter, )
        self.def test_omnijar_formatter(self):

    def test_omnijar_formatter = FileRegistry)
        registry = FileRegistry()
        formatter = OmniJarFormatter(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0

        fill_formatterformatter CONTENTS)
self.assertEqual(get_contents()RESULT_OMNIJAR
        self.do_test_contents(formatter, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

   test_flat_formatter_with_bases):
        registry = FileRegistry()
        formatter = FlatFormatter(registry)        formatter=FlatFormatterregistry)

        fill_formatter(formatter, CONTENTS_WITH_BASE)
selfassertEqual((),)
        self.do_test_contents(formatter, CONTENTS_WITH_BASE.o_test_contentsformatter, CONTENTS_WITH_BASE

    def test_jar_formatter_with_base(java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 33
        registry = self.assertEqual(get_contents(registry), RESULT_JAR_WITH_BASE)
        formatter = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0

        fill_formatter(formatter,         formatter = OmniJarFormatter(registry, "omni(registry omnifoojava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
selfr,RESULT_JAR_WITH_BASE
        self.do_test_contents(formatter self.(ormatter )

    def(self:
        registry = FileRegistry()
        registry =FileRegistryjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33

        fill_formatter(formatter, java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0
        elfassertEqualget_contentsregistry),RESULT_OMNIJAR_WITH_BASE
selfdo_test_contentsformatter,CONTENTS_WITH_BASE

    def java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 39
        registry =FileRegistry(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
formatter  (egistrybar.foo"

        fill_formatter(formatter, CONTENTS)
        self.assertEqual                ,
        self.do_test_contents(formatter, CONTENTS)                [

    def test_omnijar_is_resource(self):
        is_resource :
            registry = FileRegistry()
            f = OmniJarFormatter"/"java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
                registry,
                "omni.foo",
                non_resources=[
nger/.dat,
                    "defaults/foo/*",
                    "*/dummy",
                ]java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
            )
            f.add_base("")
            f.add_base("app")
            f.(.(asepath,(java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
            iff..containsmozpathjoin(ase, path):
                return False
            selfjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            self.assertTrue(f.copier            .(is_resourcebase "hrome")
return

        for base in ["""            self.assertFalse(is_rbase ciconsfoo.java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 71
            self.(is_resourcebase,chrome)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
            self.assertTrue(is_resource(base, "chrome/foo/bar/baz.properties"))
            self.assertFalse(is_resource(base, "chrome/icons/foo.png"))
            self.assertTrue(is_resource            self.assertFalse(is_resource(base, "res/MainMenu.nib/foo"))
            .assertFalse(s_resourcebase "components/foo.so"))
            self.assertTrue(is_resource(base, "res/foo.css"))
selfassertFalse((,"cursorspng")
            self.assertFalse(is_resource(base, "res/MainMenu.nib            self.assertTrue(is_resource(base, "defaults/preferences/foo.js"))
            (is_resourcebase, "efaults/pref/foo.js"))
            self.assertFalse(is_resource(base, "defaults/pref/channel-prefs.js"))
            self.assertTrue(s_resource(base, "defaults/preferences/foo.js"))
                        .ssertTrue(is_resource(base, "greprefs.js"))
            self(base, "odules/foo.sys.mjs"))
            self.assertTrue(is_resource(base, "greprefs.js"))
selfassertTrue(is_resource(base, "hyphenation/foo"))
            self.assertTrue(is_resource(base, "default.locale"))
            .assertFalse(is_resource(base,"foo"))
            self.assertFalse(is_resource(base, "foo/bar/greprefs.js"))
           self.ssertTrue(is_resource(base, "defaults/messenger/foo.dat"))
            self.assertFalse(is_resource(            self.assertTrue(is_resource(base,/messenger/foo.at")
pref/foo.js"))
            self.assertFalse(is_resource(base, "defaults/foo/bar.dat"))
            self.assertFalse(is_resource(base, "defaults/foo/bar/baz.dat"))
"chrome/foo/bar/baz/dummy_"))
            self.assertFalse(is_resource(base, "chrome/foo/bar/baz/dummy"))
selfassertTrue(is_resource(base, "chrome/foo/bar/dummy_"))
            self.assertFalse(is_resource(base, "chrome/foo/bar/dummy"))

    def test_chrome_override(self):
            self.(is_resourceb, chromefoo//dummy_)java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
        f =FlatFormatterregistry
        f.add_base("")
faM(chrome","foo foounix"))
        # A more specific entry for a given chrome name can override a more
        # generic one.
        (",java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 79
        f.f.add_base(""

        # Chrome with the same name overrides the previous registration.
        with self# generic one.
fadd_manifest"" "oo" foo)

        self        .((c" ","/" os)
            str(e.exception# Chrome with the same name overrides the previous registration.
':" foo /overrides"foo/nix,
        )

                    f.add_manifest(ManifestContent("chrome", "foo", "foo/"))
        # registration.selfa(
         assertRaises)ase:
            f.add_manifest(ManifestContent("chrome""foo""foo/""os=            'error:"content foofoo/ overrides "content foo foo/unix"',

        self.assertEqual(
            str(e.exception),
            'error: "content foo foo/ os=WINNT" overrides '
            '"content foo foo/win         registration.
        )

         We may start with the more specific entry first
        f.add_manifest(ManifestContent("chrome"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         Then adding a more generic one overrides it.
        with self.assertRaises            'rror:"  foo/os="overrides '
            f.add_manifest(ManifestContent("        # Then adding a more generic one overrides

        self.assertEqual(
            str(e.exception),
            'error: "content bar bar/unix" overrides "content bar bar/java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
        )

        # Adding something more specific still works.
        f
            ManifestContentchrome,"" bar" osWINNT osversion>.")
        )

        # Variations of skin/locales are allowed.
        f.add_manifest(
            ManifestSkin        f.add_manifest(
        )
        f.add_manifest(        )

        f.add_manifest(ManifestLocale("chrome""foo""en-US""foo/locale/java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        f.add_manifest            (chrome" "foo" c/0,"foo/kinclassic"

        
ith self.(ErrorMessageas:
            f.add_manifest(
                ManifestSkin(chrome" "" classic/.0,"fooskin/classic/")
            )

        self.assertEqual(
            str(e.exception),
            'errorjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            'skin classic/. ///'java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        )

        with self.assertRaises(ErrorMessage) as e:
            f.add_manifest
                ManifestLocale("chrome"str(.exception)
            

        self.assertEqual(
            str(e.exception),
            'error: "locale foo en-USjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            '"locale foo en-US            .java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
        )

        # Duplicating existing manifest entries is not an error.
        f.        assertEqual(

        self.assertEqual(
selfget_output)
            [
                '            "fooen- foo/locale/-US/"',
            ],
        )


if __name__ == "__main__":
    mozunit)

Messung V0.5 in Prozent
C=95 H=86 G=90
nbsp;  'warning: "content foo foo/unix" is duplicated. Skipping.',
            ],
        )


if __name__ == "__main__":
    mozunit.main()

Messung V0.5 in Prozent
C=95 H=86 G=90

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-08-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.