Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/build/build/soong/aconfig/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 4 kB image not shown  

Quelle  aconfig_value_set_test.go   Sprache: unbekannt

 
Spracherkennung für: .go vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// Copyright 2018 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package aconfig

import (
 "testing"

 "android/soong/android"
)

func TestAconfigValueSet(t *testing.T) {
 bp := `
    aconfig_values {
     name: "one",
     srcs: [ "blah.aconfig_values" ],
     package: "foo.package"
    }

    aconfig_value_set {
     name: "module_name",
          values: [ "one" ],
    }
   `
 result := runTest(t, android.FixtureExpectsNoErrors, bp)

 module := result.ModuleForTests(t, "module_name", "").Module().(*ValueSetModule)

 // Check that the provider has the right contents
 depData, _ := android.OtherModuleProvider(result, module, valueSetProviderKey)
 android.AssertStringEquals(t, "AvailablePackages", "blah.aconfig_values", depData.AvailablePackages["foo.package"][0].String())
}

func TestAconfigValueSetBpGlob(t *testing.T) {
 result := android.GroupFixturePreparers(
  PrepareForTestWithAconfigBuildComponents,
  android.FixtureMergeMockFs(
   map[string][]byte{
    // .../some_release/android.foo/
    "some_release/android.foo/Android.bp": []byte(`
    aconfig_values {
     name: "aconfig-values-platform_build_release-some_release-android.foo-all",
     package: "android.foo",
     srcs: [
      "*.textproto",
     ],
    }
    `),
    "some_release/android.foo/flag.textproto": nil,

    // .../some_release/android.bar/
    "some_release/android.bar/Android.bp": []byte(`
    aconfig_values {
     name: "aconfig-values-platform_build_release-some_release-android.bar-all",
     package: "android.bar",
     srcs: [
      "*.textproto",
     ],
    }
    `),
    "some_release/android.bar/flag.textproto": nil,

    // .../some_release/
    "some_release/Android.bp": []byte(`
    aconfig_value_set {
     name: "aconfig_value_set-platform_build_release-some_release",
     srcs: [
      "*/Android.bp",
     ],
    }
    `),
   },
  ),
 ).RunTest(t)

 checkModuleHasDependency := func(name, variant, dep string) bool {
  t.Helper()
  module := result.ModuleForTests(t, name, variant).Module()
  depFound := false
  result.VisitDirectDeps(module, func(m android.Module) {
   if m.Name() == dep {
    depFound = true
   }
  })
  return depFound
 }
 android.AssertBoolEquals(t,
  "aconfig_value_set expected to depend on aconfig_value via srcs",
  true,
  checkModuleHasDependency(
   "aconfig_value_set-platform_build_release-some_release",
   "",
   "aconfig-values-platform_build_release-some_release-android.foo-all",
  ),
 )
 android.AssertBoolEquals(t,
  "aconfig_value_set expected to depend on aconfig_value via srcs",
  true,
  checkModuleHasDependency(
   "aconfig_value_set-platform_build_release-some_release",
   "",
   "aconfig-values-platform_build_release-some_release-android.bar-all",
  ),
 )
}

func TestAconfigValueSetBpGlobError(t *testing.T) {
 android.GroupFixturePreparers(
  PrepareForTestWithAconfigBuildComponents,
  android.FixtureMergeMockFs(
   map[string][]byte{
    // .../some_release/android.bar/
    "some_release/android.bar/Android.bp": []byte(`
    aconfig_values {
     name: "aconfig-values-platform_build_release-some_release-android_bar-all",
     package: "android.bar",
     srcs: [
      "*.textproto",
     ],
    }
    `),
    "some_release/android.bar/flag.textproto": nil,

    // .../some_release/
    "some_release/Android.bp": []byte(`
    aconfig_value_set {
     name: "aconfig_value_set-platform_build_release-some_release",
     srcs: [
      "*/Android.bp",
     ],
    }
    `),
   },
  ),
 ).ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(
  `module "aconfig_value_set-platform_build_release-some_release": module ` +
   `"aconfig-values-platform_build_release-some_release-android.bar-all" not found. ` +
   `Rename the aconfig_values module defined in "some_release/android.bar/Android.bp" ` +
   `to "aconfig-values-platform_build_release-some_release-android.bar-all"`),
 ).RunTest(t)
}

[Dauer der Verarbeitung: 0.26 Sekunden, vorverarbeitet 2026-06-28]