cc_prebuilt_library_shared_test.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package bp2build
  2. import (
  3. "fmt"
  4. "testing"
  5. "android/soong/cc"
  6. )
  7. func TestSharedPrebuiltLibrary(t *testing.T) {
  8. RunBp2BuildTestCaseSimple(t,
  9. Bp2buildTestCase{
  10. Description: "prebuilt library shared simple",
  11. ModuleTypeUnderTest: "cc_prebuilt_library_shared",
  12. ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory,
  13. Filesystem: map[string]string{
  14. "libf.so": "",
  15. },
  16. Blueprint: `
  17. cc_prebuilt_library_shared {
  18. name: "libtest",
  19. srcs: ["libf.so"],
  20. bazel_module: { bp2build_available: true },
  21. }`,
  22. ExpectedBazelTargets: []string{
  23. MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{
  24. "shared_library": `"libf.so"`,
  25. }),
  26. },
  27. })
  28. }
  29. func TestSharedPrebuiltLibraryWithArchVariance(t *testing.T) {
  30. RunBp2BuildTestCaseSimple(t,
  31. Bp2buildTestCase{
  32. Description: "prebuilt library shared with arch variance",
  33. ModuleTypeUnderTest: "cc_prebuilt_library_shared",
  34. ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory,
  35. Filesystem: map[string]string{
  36. "libf.so": "",
  37. "libg.so": "",
  38. },
  39. Blueprint: `
  40. cc_prebuilt_library_shared {
  41. name: "libtest",
  42. arch: {
  43. arm64: { srcs: ["libf.so"], },
  44. arm: { srcs: ["libg.so"], },
  45. },
  46. bazel_module: { bp2build_available: true },
  47. }`,
  48. ExpectedBazelTargets: []string{
  49. MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{
  50. "shared_library": `select({
  51. "//build/bazel/platforms/arch:arm": "libg.so",
  52. "//build/bazel/platforms/arch:arm64": "libf.so",
  53. "//conditions:default": None,
  54. })`,
  55. }),
  56. },
  57. })
  58. }
  59. func TestSharedPrebuiltLibrarySharedStanzaFails(t *testing.T) {
  60. RunBp2BuildTestCaseSimple(t,
  61. Bp2buildTestCase{
  62. Description: "prebuilt library shared with shared stanza fails because multiple sources",
  63. ModuleTypeUnderTest: "cc_prebuilt_library_shared",
  64. ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory,
  65. Filesystem: map[string]string{
  66. "libf.so": "",
  67. "libg.so": "",
  68. },
  69. Blueprint: `
  70. cc_prebuilt_library_shared {
  71. name: "libtest",
  72. srcs: ["libf.so"],
  73. shared: {
  74. srcs: ["libg.so"],
  75. },
  76. bazel_module: { bp2build_available: true},
  77. }`,
  78. ExpectedErr: fmt.Errorf("Expected at most one source file"),
  79. })
  80. }