Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: mojom/mojom_tool/serialization/serialization_test.go

Issue 1958463003: Mojom compiler: Eliminate duplicate representation of enum values in mojom_files.mojom. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Responded to code reveiw comments. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojom/mojom_tool/serialization/serialization.go ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package serialization 5 package serialization
6 6
7 import ( 7 import (
8 "bytes" 8 "bytes"
9 "compress/gzip" 9 "compress/gzip"
10 "encoding/base64" 10 "encoding/base64"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 func (test *singleFileTest) addTestCase(moduleNameSpace, contents string) { 57 func (test *singleFileTest) addTestCase(moduleNameSpace, contents string) {
58 fileName := fmt.Sprintf("file%d", test.testCaseNum) 58 fileName := fmt.Sprintf("file%d", test.testCaseNum)
59 test.cases = append(test.cases, singleFileTestCase{fileName, contents, f alse, 59 test.cases = append(test.cases, singleFileTestCase{fileName, contents, f alse,
60 new(mojom_files.MojomFile), new(mojom_files.MojomFileGraph)}) 60 new(mojom_files.MojomFile), new(mojom_files.MojomFileGraph)})
61 61
62 test.expectedFile().FileName = fileName 62 test.expectedFile().FileName = fileName
63 test.expectedFile().SpecifiedFileName = stringPointer(fileName) 63 test.expectedFile().SpecifiedFileName = stringPointer(fileName)
64 test.expectedFile().ModuleNamespace = &moduleNameSpace 64 test.expectedFile().ModuleNamespace = &moduleNameSpace
65 65
66 test.expectedGraph().ResolvedTypes = make(map[string]mojom_types.UserDef inedType) 66 test.expectedGraph().ResolvedTypes = make(map[string]mojom_types.UserDef inedType)
67 » test.expectedGraph().ResolvedValues = make(map[string]mojom_types.UserDe finedValue) 67 » test.expectedGraph().ResolvedConstants = make(map[string]mojom_types.Dec laredConstant)
68 } 68 }
69 69
70 // endTestCase() should be invoked at the end of a case in 70 // endTestCase() should be invoked at the end of a case in
71 // TestSingleFileSerialization. 71 // TestSingleFileSerialization.
72 func (test *singleFileTest) endTestCase() { 72 func (test *singleFileTest) endTestCase() {
73 test.expectedGraph().Files = make(map[string]mojom_files.MojomFile) 73 test.expectedGraph().Files = make(map[string]mojom_files.MojomFile)
74 test.expectedGraph().Files[test.fileName()] = *test.expectedFile() 74 test.expectedGraph().Files[test.fileName()] = *test.expectedFile()
75 test.testCaseNum += 1 75 test.testCaseNum += 1
76 } 76 }
77 77
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 X0, 523 X0,
524 X1 = 42, 524 X1 = 42,
525 X2 = X1 525 X2 = X1
526 };` 526 };`
527 527
528 test.addTestCase("", contents) 528 test.addTestCase("", contents)
529 529
530 // DeclaredMojomObjects 530 // DeclaredMojomObjects
531 test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]stri ng{"TYPE_KEY:Foo"} 531 test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]stri ng{"TYPE_KEY:Foo"}
532 532
533 // Resolved Values
534
535 // Foo.X0
536 test.expectedGraph().ResolvedValues["TYPE_KEY:Foo.X0"] = &mojom_ types.UserDefinedValueEnumValue{mojom_types.EnumValue{
537 DeclData: test.newDeclData("X0", "Foo.X0"),
538 EnumTypeKey: "TYPE_KEY:Foo",
539 IntValue: 0,
540 }}
541
542 // Foo.X1
543 test.expectedGraph().ResolvedValues["TYPE_KEY:Foo.X1"] = &mojom_ types.UserDefinedValueEnumValue{mojom_types.EnumValue{
544 DeclData: test.newDeclData("X1", "Foo.X1"),
545 EnumTypeKey: "TYPE_KEY:Foo",
546 InitializerValue: &mojom_types.ValueLiteralValue{&mojom_ types.LiteralValueInt8Value{42}},
547 IntValue: 42,
548 }}
549
550 // Foo.X2
551 test.expectedGraph().ResolvedValues["TYPE_KEY:Foo.X2"] = &mojom_ types.UserDefinedValueEnumValue{mojom_types.EnumValue{
552 DeclData: test.newDeclData("X2", "Foo.X2"),
553 EnumTypeKey: "TYPE_KEY:Foo",
554 InitializerValue: &mojom_types.ValueUserValueReference{m ojom_types.UserValueReference{
555 Identifier: "X1",
556 ValueKey: stringPointer("TYPE_KEY:Foo.X1"),
557 }},
558 IntValue: 42,
559 }}
560
561 // ResolvedTypes 533 // ResolvedTypes
562 534
563 // enum Foo 535 // enum Foo
564 test.expectedGraph().ResolvedTypes["TYPE_KEY:Foo"] = &mojom_type s.UserDefinedTypeEnumType{mojom_types.MojomEnum{ 536 test.expectedGraph().ResolvedTypes["TYPE_KEY:Foo"] = &mojom_type s.UserDefinedTypeEnumType{mojom_types.MojomEnum{
565 DeclData: test.newDeclData("Foo", "Foo"), 537 DeclData: test.newDeclData("Foo", "Foo"),
566 Values: []mojom_types.EnumValue{ 538 Values: []mojom_types.EnumValue{
567 // Note(rudominer) It is a bug that we need to c opy the enum values here.
568 // See https://github.com/domokit/mojo/issues/51 3.
569 // value X1 539 // value X1
570 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Fo o.X0"].(*mojom_types.UserDefinedValueEnumValue).Value, 540 » » » » mojom_types.EnumValue{
541 » » » » » DeclData: test.newDeclData("X0", "Foo.X0 "),
542 » » » » » IntValue: 0,
543 » » » » },
571 // value X1 544 // value X1
572 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Fo o.X1"].(*mojom_types.UserDefinedValueEnumValue).Value, 545 » » » » mojom_types.EnumValue{
546 » » » » » DeclData: test.newDeclData("X1", "Foo.X1"),
547 » » » » » InitializerValue: &mojom_types.ValueLite ralValue{&mojom_types.LiteralValueInt8Value{42}},
548 » » » » » IntValue: 42,
549 » » » » },
573 // value X2 550 // value X2
574 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Fo o.X2"].(*mojom_types.UserDefinedValueEnumValue).Value, 551 » » » » mojom_types.EnumValue{
552 » » » » » DeclData: test.newDeclData("X2", "Foo.X2 "),
553 » » » » » InitializerValue: &mojom_types.ValueEnum ValueReference{mojom_types.EnumValueReference{
554 » » » » » » Identifier: "X1",
555 » » » » » » EnumTypeKey: "TYPE_KEY:Foo",
556 » » » » » » EnumValueIndex: 1,
557 » » » » » }},
558 » » » » » IntValue: 42,
559 » » » » },
575 }, 560 },
576 }} 561 }}
577 562
578 test.endTestCase() 563 test.endTestCase()
579 } 564 }
580 565
581 //////////////////////////////////////////////////////////// 566 ////////////////////////////////////////////////////////////
582 // Test Case: enum value name is shadowed by local constant declaration. 567 // Test Case: enum value name is shadowed by local constant declaration.
583 //////////////////////////////////////////////////////////// 568 ////////////////////////////////////////////////////////////
584 { 569 {
585 570
586 contents := ` 571 contents := `
587 enum Color{ 572 enum Color{
588 RED, BLUE 573 RED, BLUE
589 }; 574 };
590 575
591 struct MyStruct { 576 struct MyStruct {
592 const Color RED = BLUE; 577 const Color RED = BLUE;
593 578
594 Color a_color = RED; // This should resolve to the local constant RED. 579 Color a_color = RED; // This should resolve to the local constant RED.
595 };` 580 };`
596 581
597 test.addTestCase("", contents) 582 test.addTestCase("", contents)
598 583
599 // DeclaredMojomObjects 584 // DeclaredMojomObjects
600 test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]stri ng{"TYPE_KEY:Color"} 585 test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]stri ng{"TYPE_KEY:Color"}
601 test.expectedFile().DeclaredMojomObjects.Structs = &[]string{"TY PE_KEY:MyStruct"} 586 test.expectedFile().DeclaredMojomObjects.Structs = &[]string{"TY PE_KEY:MyStruct"}
602 587
603 » » // Resolved Values 588 » » // Resolved Constants
604
605 » » // Color.RED
606 » » test.expectedGraph().ResolvedValues["TYPE_KEY:Color.RED"] = &moj om_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
607 » » » DeclData: test.newDeclData("RED", "Color.RED"),
608 » » » EnumTypeKey: "TYPE_KEY:Color",
609 » » » IntValue: 0,
610 » » }}
611
612 » » // Color.BLUE
613 » » test.expectedGraph().ResolvedValues["TYPE_KEY:Color.BLUE"] = &mo jom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
614 » » » DeclData: test.newDeclData("BLUE", "Color.BLUE"),
615 » » » EnumTypeKey: "TYPE_KEY:Color",
616 » » » IntValue: 1,
617 » » }}
618 589
619 // MyStruct.RED 590 // MyStruct.RED
620 » » test.expectedGraph().ResolvedValues["TYPE_KEY:MyStruct.RED"] = & mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 591 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:MyStruct.RED"] = mojom_types.DeclaredConstant{
621 DeclData: *test.newContainedDeclData("RED", "MyStruct.RE D", stringPointer("TYPE_KEY:MyStruct")), 592 DeclData: *test.newContainedDeclData("RED", "MyStruct.RE D", stringPointer("TYPE_KEY:MyStruct")),
622 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{ 593 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{
623 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}}, 594 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}},
624 » » » Value: &mojom_types.ValueUserValueReference{ 595 » » » Value: &mojom_types.ValueEnumValueReference{
625 » » » » mojom_types.UserValueReference{ 596 » » » » mojom_types.EnumValueReference{
626 » » » » » Identifier: "BLUE", 597 » » » » » Identifier: "BLUE",
627 » » » » » ValueKey: stringPointer("TYPE_KEY:Colo r.BLUE")}}, 598 » » » » » EnumTypeKey: "TYPE_KEY:Color",
628 » » }} 599 » » » » » EnumValueIndex: 1}},
600 » » }
629 601
630 // ResolvedTypes 602 // ResolvedTypes
631 603
632 // enum Color 604 // enum Color
633 test.expectedGraph().ResolvedTypes["TYPE_KEY:Color"] = &mojom_ty pes.UserDefinedTypeEnumType{mojom_types.MojomEnum{ 605 test.expectedGraph().ResolvedTypes["TYPE_KEY:Color"] = &mojom_ty pes.UserDefinedTypeEnumType{mojom_types.MojomEnum{
634 DeclData: test.newDeclData("Color", "Color"), 606 DeclData: test.newDeclData("Color", "Color"),
635 Values: []mojom_types.EnumValue{ 607 Values: []mojom_types.EnumValue{
636 // Note(rudominer) It is a bug that we need to c opy the enum values here.
637 // See https://github.com/domokit/mojo/issues/51 3.
638 // value RED 608 // value RED
639 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Co lor.RED"].(*mojom_types.UserDefinedValueEnumValue).Value, 609 » » » » mojom_types.EnumValue{
610 » » » » » DeclData: test.newDeclData("RED", "Color .RED"),
611 » » » » » IntValue: 0,
612 » » » » },
640 // value BLUE 613 // value BLUE
641 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Co lor.BLUE"].(*mojom_types.UserDefinedValueEnumValue).Value, 614 » » » » mojom_types.EnumValue{
615 » » » » » DeclData: test.newDeclData("BLUE", "Colo r.BLUE"),
616 » » » » » IntValue: 1,
617 » » » » },
642 }, 618 },
643 }} 619 }}
644 620
645 // struct MyStruct 621 // struct MyStruct
646 test.expectedGraph().ResolvedTypes["TYPE_KEY:MyStruct"] = &mojom _types.UserDefinedTypeStructType{mojom_types.MojomStruct{ 622 test.expectedGraph().ResolvedTypes["TYPE_KEY:MyStruct"] = &mojom _types.UserDefinedTypeStructType{mojom_types.MojomStruct{
647 DeclData: &mojom_types.DeclarationData{ 623 DeclData: &mojom_types.DeclarationData{
648 ShortName: stringPointer("MyStruct"), 624 ShortName: stringPointer("MyStruct"),
649 FullIdentifier: stringPointer("MyStruct"), 625 FullIdentifier: stringPointer("MyStruct"),
650 DeclaredOrdinal: -1, 626 DeclaredOrdinal: -1,
651 DeclarationOrder: -1, 627 DeclarationOrder: -1,
652 SourceFileInfo: &mojom_types.SourceFileInfo{ 628 SourceFileInfo: &mojom_types.SourceFileInfo{
653 FileName: test.fileName(), 629 FileName: test.fileName(),
654 }, 630 },
655 ContainedDeclarations: &mojom_types.ContainedDec larations{ 631 ContainedDeclarations: &mojom_types.ContainedDec larations{
656 Constants: &[]string{"TYPE_KEY:MyStruct. RED"}}, 632 Constants: &[]string{"TYPE_KEY:MyStruct. RED"}},
657 }, 633 },
658 Fields: []mojom_types.StructField{ 634 Fields: []mojom_types.StructField{
659 // field a_color 635 // field a_color
660 { 636 {
661 DeclData: test.newShortDeclDataO(0, -1, "a_color"), 637 DeclData: test.newShortDeclDataO(0, -1, "a_color"),
662 Type: &mojom_types.TypeTypeReference{moj om_types.TypeReference{ 638 Type: &mojom_types.TypeTypeReference{moj om_types.TypeReference{
663 false, false, stringPointer("Col or"), stringPointer("TYPE_KEY:Color")}}, 639 false, false, stringPointer("Col or"), stringPointer("TYPE_KEY:Color")}},
664 » » » » » DefaultValue: &mojom_types.DefaultFieldV alueValue{&mojom_types.ValueUserValueReference{ 640 » » » » » DefaultValue: &mojom_types.DefaultFieldV alueValue{&mojom_types.ValueConstantReference{
665 » » » » » » mojom_types.UserValueReference{ 641 » » » » » » mojom_types.ConstantReference{
666 » » » » » » » Identifier: "RED", 642 » » » » » » » Identifier: "RED",
667 » » » » » » » ValueKey: stringPointe r("TYPE_KEY:MyStruct.RED")}}}, // Note this refers to MyStruct.RED and not Color .RED. 643 » » » » » » » ConstantKey: "TYPE_KEY:M yStruct.RED"}}}, // Note this refers to MyStruct.RED and not Color.RED.
668 }, 644 },
669 }, 645 },
670 }} 646 }}
671 647
672 test.endTestCase() 648 test.endTestCase()
673 } 649 }
674 650
675 //////////////////////////////////////////////////////////// 651 ////////////////////////////////////////////////////////////
676 // Test Case: In-Out method parameters with the same name. 652 // Test Case: In-Out method parameters with the same name.
677 //////////////////////////////////////////////////////////// 653 ////////////////////////////////////////////////////////////
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 838
863 // DeclaredMojomObjects 839 // DeclaredMojomObjects
864 840
865 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{ 841 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{
866 "TYPE_KEY:xu8", "TYPE_KEY:x8", "TYPE_KEY:xu16", "TYPE_KE Y:x16", 842 "TYPE_KEY:xu8", "TYPE_KEY:x8", "TYPE_KEY:xu16", "TYPE_KE Y:x16",
867 "TYPE_KEY:xu32", "TYPE_KEY:x32", "TYPE_KEY:xu64", "TYPE_ KEY:x64"} 843 "TYPE_KEY:xu32", "TYPE_KEY:x32", "TYPE_KEY:xu64", "TYPE_ KEY:x64"}
868 844
869 // Resolved Values 845 // Resolved Values
870 846
871 // xu8 847 // xu8
872 » » test.expectedGraph().ResolvedValues["TYPE_KEY:xu8"] = &mojom_typ es.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 848 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:xu8"] = mojom_t ypes.DeclaredConstant{
873 DeclData: *test.newDeclData("xu8", "xu8"), 849 DeclData: *test.newDeclData("xu8", "xu8"),
874 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint8}, 850 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint8},
875 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint8Value{255}}, 851 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint8Value{255}},
876 » » }} 852 » » }
877 853
878 // x8 854 // x8
879 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x8"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 855 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x8"] = mojom_ty pes.DeclaredConstant{
880 DeclData: *test.newDeclData("x8", "x8"), 856 DeclData: *test.newDeclData("x8", "x8"),
881 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int8}, 857 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int8},
882 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt8Value{-127}}, 858 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt8Value{-127}},
883 » » }} 859 » » }
884 860
885 // xu16 861 // xu16
886 » » test.expectedGraph().ResolvedValues["TYPE_KEY:xu16"] = &mojom_ty pes.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 862 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:xu16"] = mojom_ types.DeclaredConstant{
887 DeclData: *test.newDeclData("xu16", "xu16"), 863 DeclData: *test.newDeclData("xu16", "xu16"),
888 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint16}, 864 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint16},
889 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint16Value{0xFFFF}}, 865 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint16Value{0xFFFF}},
890 » » }} 866 » » }
891 867
892 // x16 868 // x16
893 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x16"] = &mojom_typ es.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 869 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x16"] = mojom_t ypes.DeclaredConstant{
894 DeclData: *test.newDeclData("x16", "x16"), 870 DeclData: *test.newDeclData("x16", "x16"),
895 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int16}, 871 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int16},
896 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt16Value{-0x7FFF}}, 872 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt16Value{-0x7FFF}},
897 » » }} 873 » » }
898 874
899 // xu32 875 // xu32
900 » » test.expectedGraph().ResolvedValues["TYPE_KEY:xu32"] = &mojom_ty pes.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 876 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:xu32"] = mojom_ types.DeclaredConstant{
901 DeclData: *test.newDeclData("xu32", "xu32"), 877 DeclData: *test.newDeclData("xu32", "xu32"),
902 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint32}, 878 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint32},
903 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint32Value{4294967295}}, 879 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint32Value{4294967295}},
904 » » }} 880 » » }
905 881
906 // x32 882 // x32
907 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x32"] = &mojom_typ es.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 883 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x32"] = mojom_t ypes.DeclaredConstant{
908 DeclData: *test.newDeclData("x32", "x32"), 884 DeclData: *test.newDeclData("x32", "x32"),
909 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32}, 885 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32},
910 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt32Value{-2147483647}}, 886 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt32Value{-2147483647}},
911 » » }} 887 » » }
912 888
913 // xu64 889 // xu64
914 » » test.expectedGraph().ResolvedValues["TYPE_KEY:xu64"] = &mojom_ty pes.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 890 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:xu64"] = mojom_ types.DeclaredConstant{
915 DeclData: *test.newDeclData("xu64", "xu64"), 891 DeclData: *test.newDeclData("xu64", "xu64"),
916 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint64}, 892 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint64},
917 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint64Value{0xFFFFFFFFFFFFFFFF}}, 893 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueUint64Value{0xFFFFFFFFFFFFFFFF}},
918 » » }} 894 » » }
919 895
920 // x64 896 // x64
921 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x64"] = &mojom_typ es.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 897 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x64"] = mojom_t ypes.DeclaredConstant{
922 DeclData: *test.newDeclData("x64", "x64"), 898 DeclData: *test.newDeclData("x64", "x64"),
923 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int64}, 899 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int64},
924 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt64Value{-0x7FFFFFFFFFFFFFFF}}, 900 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt64Value{-0x7FFFFFFFFFFFFFFF}},
925 » » }} 901 » » }
926 902
927 test.endTestCase() 903 test.endTestCase()
928 } 904 }
929 905
930 //////////////////////////////////////////////////////////// 906 ////////////////////////////////////////////////////////////
931 // Test Case: Builtin Floating-Point Constants 907 // Test Case: Builtin Floating-Point Constants
932 //////////////////////////////////////////////////////////// 908 ////////////////////////////////////////////////////////////
933 { 909 {
934 910
935 contents := ` 911 contents := `
936 const float f1 = float.INFINITY; 912 const float f1 = float.INFINITY;
937 const float f2 = float.NEGATIVE_INFINITY; 913 const float f2 = float.NEGATIVE_INFINITY;
938 const float f3 = float.NAN; 914 const float f3 = float.NAN;
939 const double d1 = double.INFINITY; 915 const double d1 = double.INFINITY;
940 const double d2 = double.NEGATIVE_INFINITY; 916 const double d2 = double.NEGATIVE_INFINITY;
941 const double d3 = double.NAN; 917 const double d3 = double.NAN;
942 ` 918 `
943 test.addTestCase("", contents) 919 test.addTestCase("", contents)
944 920
945 // DeclaredMojomObjects 921 // DeclaredMojomObjects
946 922
947 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{ 923 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{
948 "TYPE_KEY:f1", "TYPE_KEY:f2", "TYPE_KEY:f3", "TYPE_KEY:d 1", "TYPE_KEY:d2", "TYPE_KEY:d3"} 924 "TYPE_KEY:f1", "TYPE_KEY:f2", "TYPE_KEY:f3", "TYPE_KEY:d 1", "TYPE_KEY:d2", "TYPE_KEY:d3"}
949 925
950 // Resolved Values 926 // Resolved Values
951 927
952 // f1 928 // f1
953 » » test.expectedGraph().ResolvedValues["TYPE_KEY:f1"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 929 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:f1"] = mojom_ty pes.DeclaredConstant{
954 DeclData: *test.newDeclData("f1", "f1"), 930 DeclData: *test.newDeclData("f1", "f1"),
955 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Float}, 931 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Float},
956 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_FloatInfinity}, 932 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_FloatInfinity},
957 » » }} 933 » » }
958 934
959 // f2 935 // f2
960 » » test.expectedGraph().ResolvedValues["TYPE_KEY:f2"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 936 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:f2"] = mojom_ty pes.DeclaredConstant{
961 DeclData: *test.newDeclData("f2", "f2"), 937 DeclData: *test.newDeclData("f2", "f2"),
962 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Float}, 938 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Float},
963 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_FloatNegativeInfinity}, 939 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_FloatNegativeInfinity},
964 » » }} 940 » » }
965 941
966 // f3 942 // f3
967 » » test.expectedGraph().ResolvedValues["TYPE_KEY:f3"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 943 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:f3"] = mojom_ty pes.DeclaredConstant{
968 DeclData: *test.newDeclData("f3", "f3"), 944 DeclData: *test.newDeclData("f3", "f3"),
969 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Float}, 945 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Float},
970 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_FloatNan}, 946 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_FloatNan},
971 » » }} 947 » » }
972 948
973 // d1 949 // d1
974 » » test.expectedGraph().ResolvedValues["TYPE_KEY:d1"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 950 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:d1"] = mojom_ty pes.DeclaredConstant{
975 DeclData: *test.newDeclData("d1", "d1"), 951 DeclData: *test.newDeclData("d1", "d1"),
976 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Double}, 952 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Double},
977 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_DoubleInfinity}, 953 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_DoubleInfinity},
978 » » }} 954 » » }
979 955
980 // d2 956 // d2
981 » » test.expectedGraph().ResolvedValues["TYPE_KEY:d2"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 957 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:d2"] = mojom_ty pes.DeclaredConstant{
982 DeclData: *test.newDeclData("d2", "d2"), 958 DeclData: *test.newDeclData("d2", "d2"),
983 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Double}, 959 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Double},
984 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_DoubleNegativeInfinity}, 960 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_DoubleNegativeInfinity},
985 » » }} 961 » » }
986 962
987 // d3 963 // d3
988 » » test.expectedGraph().ResolvedValues["TYPE_KEY:d3"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 964 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:d3"] = mojom_ty pes.DeclaredConstant{
989 DeclData: *test.newDeclData("d3", "d3"), 965 DeclData: *test.newDeclData("d3", "d3"),
990 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Double}, 966 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Double},
991 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_DoubleNan}, 967 Value: &mojom_types.ValueBuiltinValue{mojom_types.Bui ltinConstantValue_DoubleNan},
992 » » }} 968 » » }
993 969
994 test.endTestCase() 970 test.endTestCase()
995 } 971 }
996 972
997 //////////////////////////////////////////////////////////// 973 ////////////////////////////////////////////////////////////
998 // Test Case: Constants defined in terms of other constants. 974 // Test Case: Constants defined in terms of other constants.
999 //////////////////////////////////////////////////////////// 975 ////////////////////////////////////////////////////////////
1000 { 976 {
1001 977
1002 contents := ` 978 contents := `
1003 enum Color{ 979 enum Color{
1004 RED, BLUE 980 RED, BLUE
1005 }; 981 };
1006 982
1007 const int32 x1 = 42; 983 const int32 x1 = 42;
1008 const int32 x2 = x1; 984 const int32 x2 = x1;
1009 const int32 x3 = x2; 985 const int32 x3 = x2;
1010 986
1011 const Color c1 = RED; 987 const Color c1 = RED;
1012 const Color c2 = c1; 988 const Color c2 = c1;
1013 const Color c3 = c2; 989 const Color c3 = c2;
1014 ` 990 `
1015 test.addTestCase("", contents) 991 test.addTestCase("", contents)
1016 992
1017 // DeclaredMojomObjects 993 // DeclaredMojomObjects
1018 test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]stri ng{"TYPE_KEY:Color"} 994 test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]stri ng{"TYPE_KEY:Color"}
1019 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{"TYPE_KEY:x1", "TYPE_KEY:x2", 995 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{"TYPE_KEY:x1", "TYPE_KEY:x2",
1020 "TYPE_KEY:x3", "TYPE_KEY:c1", "TYPE_KEY:c2", "TYPE_KEY:c 3"} 996 "TYPE_KEY:x3", "TYPE_KEY:c1", "TYPE_KEY:c2", "TYPE_KEY:c 3"}
1021 997
1022 » » // Resolved Values 998 » » // Resolved Constants
1023
1024 » » // Color.RED
1025 » » test.expectedGraph().ResolvedValues["TYPE_KEY:Color.RED"] = &moj om_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
1026 » » » DeclData: test.newDeclData("RED", "Color.RED"),
1027 » » » EnumTypeKey: "TYPE_KEY:Color",
1028 » » » IntValue: 0,
1029 » » }}
1030
1031 » » // Color.BLUE
1032 » » test.expectedGraph().ResolvedValues["TYPE_KEY:Color.BLUE"] = &mo jom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
1033 » » » DeclData: test.newDeclData("BLUE", "Color.BLUE"),
1034 » » » EnumTypeKey: "TYPE_KEY:Color",
1035 » » » IntValue: 1,
1036 » » }}
1037 999
1038 // x1 1000 // x1
1039 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x1"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 1001 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x1"] = mojom_ty pes.DeclaredConstant{
1040 DeclData: *test.newDeclData("x1", "x1"), 1002 DeclData: *test.newDeclData("x1", "x1"),
1041 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32}, 1003 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32},
1042 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt8Value{42}}, 1004 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt8Value{42}},
1043 » » }} 1005 » » }
1044 1006
1045 // x2 1007 // x2
1046 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x2"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 1008 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x2"] = mojom_ty pes.DeclaredConstant{
1047 DeclData: *test.newDeclData("x2", "x2"), 1009 DeclData: *test.newDeclData("x2", "x2"),
1048 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32}, 1010 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32},
1049 » » » Value: &mojom_types.ValueUserValueReference{mojom_types. UserValueReference{ 1011 » » » Value: &mojom_types.ValueConstantReference{mojom_types.C onstantReference{
1050 » » » » Identifier: "x1", 1012 » » » » Identifier: "x1",
1051 » » » » ValueKey: stringPointer("TYPE_KEY:x1")}}, 1013 » » » » ConstantKey: "TYPE_KEY:x1"}},
1052 ResolvedConcreteValue: &mojom_types.ValueLiteralValue{&m ojom_types.LiteralValueInt8Value{42}}, 1014 ResolvedConcreteValue: &mojom_types.ValueLiteralValue{&m ojom_types.LiteralValueInt8Value{42}},
1053 » » }} 1015 » » }
1054 1016
1055 // x3 1017 // x3
1056 » » test.expectedGraph().ResolvedValues["TYPE_KEY:x3"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 1018 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:x3"] = mojom_ty pes.DeclaredConstant{
1057 DeclData: *test.newDeclData("x3", "x3"), 1019 DeclData: *test.newDeclData("x3", "x3"),
1058 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32}, 1020 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Int32},
1059 » » » Value: &mojom_types.ValueUserValueReference{mojom_types. UserValueReference{ 1021 » » » Value: &mojom_types.ValueConstantReference{mojom_types.C onstantReference{
1060 » » » » Identifier: "x2", 1022 » » » » Identifier: "x2",
1061 » » » » ValueKey: stringPointer("TYPE_KEY:x2")}}, 1023 » » » » ConstantKey: "TYPE_KEY:x2"}},
1062 ResolvedConcreteValue: &mojom_types.ValueLiteralValue{&m ojom_types.LiteralValueInt8Value{42}}, 1024 ResolvedConcreteValue: &mojom_types.ValueLiteralValue{&m ojom_types.LiteralValueInt8Value{42}},
1063 » » }} 1025 » » }
1064 1026
1065 // c1 1027 // c1
1066 » » test.expectedGraph().ResolvedValues["TYPE_KEY:c1"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 1028 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:c1"] = mojom_ty pes.DeclaredConstant{
1067 DeclData: *test.newDeclData("c1", "c1"), 1029 DeclData: *test.newDeclData("c1", "c1"),
1068 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{ 1030 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{
1069 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}}, 1031 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}},
1070 » » » Value: &mojom_types.ValueUserValueReference{mojom_types. UserValueReference{ 1032 » » » Value: &mojom_types.ValueEnumValueReference{mojom_types. EnumValueReference{
1071 » » » » Identifier: "RED", 1033 » » » » Identifier: "RED",
1072 » » » » ValueKey: stringPointer("TYPE_KEY:Color.RED")} }, 1034 » » » » EnumTypeKey: "TYPE_KEY:Color",
1073 » » }} 1035 » » » » EnumValueIndex: 0}},
1036 » » }
1074 1037
1075 // c2 1038 // c2
1076 » » test.expectedGraph().ResolvedValues["TYPE_KEY:c2"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 1039 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:c2"] = mojom_ty pes.DeclaredConstant{
1077 DeclData: *test.newDeclData("c2", "c2"), 1040 DeclData: *test.newDeclData("c2", "c2"),
1078 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{ 1041 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{
1079 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}}, 1042 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}},
1080 » » » Value: &mojom_types.ValueUserValueReference{mojom_types. UserValueReference{ 1043 » » » Value: &mojom_types.ValueConstantReference{mojom_types.C onstantReference{
1081 » » » » Identifier: "c1", 1044 » » » » Identifier: "c1",
1082 » » » » ValueKey: stringPointer("TYPE_KEY:c1")}}, 1045 » » » » ConstantKey: "TYPE_KEY:c1"}},
1083 » » » ResolvedConcreteValue: &mojom_types.ValueUserValueRefere nce{mojom_types.UserValueReference{ 1046 » » » ResolvedConcreteValue: &mojom_types.ValueEnumValueRefere nce{mojom_types.EnumValueReference{
1084 » » » » ValueKey: stringPointer("TYPE_KEY:Color.RED")}}, 1047 » » » » EnumTypeKey: "TYPE_KEY:Color",
1085 » » }} 1048 » » » » EnumValueIndex: 0}},
1049 » » }
1086 1050
1087 // c3 1051 // c3
1088 » » test.expectedGraph().ResolvedValues["TYPE_KEY:c3"] = &mojom_type s.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{ 1052 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:c3"] = mojom_ty pes.DeclaredConstant{
1089 DeclData: *test.newDeclData("c3", "c3"), 1053 DeclData: *test.newDeclData("c3", "c3"),
1090 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{ 1054 Type: &mojom_types.TypeTypeReference{mojom_types.TypeRef erence{
1091 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}}, 1055 false, false, stringPointer("Color"), stringPoin ter("TYPE_KEY:Color")}},
1092 » » » Value: &mojom_types.ValueUserValueReference{mojom_types. UserValueReference{ 1056 » » » Value: &mojom_types.ValueConstantReference{mojom_types.C onstantReference{
1093 » » » » Identifier: "c2", 1057 » » » » Identifier: "c2",
1094 » » » » ValueKey: stringPointer("TYPE_KEY:c2")}}, 1058 » » » » ConstantKey: "TYPE_KEY:c2"}},
1095 » » » ResolvedConcreteValue: &mojom_types.ValueUserValueRefere nce{mojom_types.UserValueReference{ 1059 » » » ResolvedConcreteValue: &mojom_types.ValueEnumValueRefere nce{mojom_types.EnumValueReference{
1096 » » » » ValueKey: stringPointer("TYPE_KEY:Color.RED")}}, 1060 » » » » EnumTypeKey: "TYPE_KEY:Color",
1097 » » }} 1061 » » » » EnumValueIndex: 0}},
1062 » » }
1098 1063
1099 // ResolvedTypes 1064 // ResolvedTypes
1100 1065
1101 // enum Color 1066 // enum Color
1102 test.expectedGraph().ResolvedTypes["TYPE_KEY:Color"] = &mojom_ty pes.UserDefinedTypeEnumType{mojom_types.MojomEnum{ 1067 test.expectedGraph().ResolvedTypes["TYPE_KEY:Color"] = &mojom_ty pes.UserDefinedTypeEnumType{mojom_types.MojomEnum{
1103 DeclData: test.newDeclData("Color", "Color"), 1068 DeclData: test.newDeclData("Color", "Color"),
1104 Values: []mojom_types.EnumValue{ 1069 Values: []mojom_types.EnumValue{
1105 // Note(rudominer) It is a bug that we need to c opy the enum values here.
1106 // See https://github.com/domokit/mojo/issues/51 3.
1107 // value RED 1070 // value RED
1108 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Co lor.RED"].(*mojom_types.UserDefinedValueEnumValue).Value, 1071 » » » » mojom_types.EnumValue{
1072 » » » » » DeclData: test.newDeclData("RED", "Color .RED"),
1073 » » » » » IntValue: 0,
1074 » » » » },
1109 // value BLUE 1075 // value BLUE
1110 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:Co lor.BLUE"].(*mojom_types.UserDefinedValueEnumValue).Value, 1076 » » » » mojom_types.EnumValue{
1077 » » » » » DeclData: test.newDeclData("BLUE", "Colo r.BLUE"),
1078 » » » » » IntValue: 1,
1079 » » » » },
1111 }, 1080 },
1112 }} 1081 }}
1113 1082
1114 test.endTestCase() 1083 test.endTestCase()
1115 } 1084 }
1116 1085
1117 //////////////////////////////////////////////////////////// 1086 ////////////////////////////////////////////////////////////
1118 // Test Case 1087 // Test Case
1119 //////////////////////////////////////////////////////////// 1088 ////////////////////////////////////////////////////////////
1120 { 1089 {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1154 1123
1155 // Imports 1124 // Imports
1156 test.expectedFile().Imports = &[]string{ 1125 test.expectedFile().Imports = &[]string{
1157 "another.file.canonical", "and.another.file.canonical", 1126 "another.file.canonical", "and.another.file.canonical",
1158 } 1127 }
1159 1128
1160 // DeclaredMojomObjects 1129 // DeclaredMojomObjects
1161 test.expectedFile().DeclaredMojomObjects.Structs = &[]string{"TY PE_KEY:mojom.test.Foo"} 1130 test.expectedFile().DeclaredMojomObjects.Structs = &[]string{"TY PE_KEY:mojom.test.Foo"}
1162 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{"TYPE_KEY:mojom.test.NUM_MAGI"} 1131 test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[] string{"TYPE_KEY:mojom.test.NUM_MAGI"}
1163 1132
1164 » » // Resolved Values 1133 » » // Resolved Constants
1165 1134
1166 // NUM_MAGI 1135 // NUM_MAGI
1167 » » test.expectedGraph().ResolvedValues["TYPE_KEY:mojom.test.NUM_MAG I"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant { 1136 » » test.expectedGraph().ResolvedConstants["TYPE_KEY:mojom.test.NUM_ MAGI"] = mojom_types.DeclaredConstant{
1168 DeclData: *test.newDeclData("NUM_MAGI", "mojom.test.NUM_ MAGI"), 1137 DeclData: *test.newDeclData("NUM_MAGI", "mojom.test.NUM_ MAGI"),
1169 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint16}, 1138 Type: &mojom_types.TypeSimpleType{mojom_types.Simple Type_Uint16},
1170 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt8Value{3}}, 1139 Value: &mojom_types.ValueLiteralValue{&mojom_types.Li teralValueInt8Value{3}},
1171 » » }} 1140 » » }
1172
1173 » » // Hats.TOP
1174 » » test.expectedGraph().ResolvedValues["TYPE_KEY:mojom.test.Foo.Hat s.TOP"] = &mojom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
1175 » » » DeclData: test.newDeclData("TOP", "mojom.test.Foo.Hat s.TOP"),
1176 » » » EnumTypeKey: "TYPE_KEY:mojom.test.Foo.Hats",
1177 » » » IntValue: 0,
1178 » » }}
1179
1180 » » // Hats.COWBOY
1181 » » test.expectedGraph().ResolvedValues["TYPE_KEY:mojom.test.Foo.Hat s.COWBOY"] = &mojom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
1182 » » » DeclData: test.newDeclData("COWBOY", "mojom.test.Foo. Hats.COWBOY"),
1183 » » » EnumTypeKey: "TYPE_KEY:mojom.test.Foo.Hats",
1184 » » » IntValue: 3,
1185 » » » InitializerValue: &mojom_types.ValueUserValueReference{m ojom_types.UserValueReference{
1186 » » » » Identifier: "NUM_MAGI",
1187 » » » » ValueKey: stringPointer("TYPE_KEY:mojom.test.N UM_MAGI"),
1188 » » » }},
1189 » » }}
1190
1191 » » // Hats.HARD
1192 » » test.expectedGraph().ResolvedValues["TYPE_KEY:mojom.test.Foo.Hat s.HARD"] = &mojom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
1193 » » » DeclData: test.newDeclData("HARD", "mojom.test.Foo.Ha ts.HARD"),
1194 » » » EnumTypeKey: "TYPE_KEY:mojom.test.Foo.Hats",
1195 » » » IntValue: 4,
1196 » » }}
1197 1141
1198 // ResolvedTypes 1142 // ResolvedTypes
1199 1143
1200 // struct Foo 1144 // struct Foo
1201 test.expectedGraph().ResolvedTypes["TYPE_KEY:mojom.test.Foo"] = &mojom_types.UserDefinedTypeStructType{mojom_types.MojomStruct{ 1145 test.expectedGraph().ResolvedTypes["TYPE_KEY:mojom.test.Foo"] = &mojom_types.UserDefinedTypeStructType{mojom_types.MojomStruct{
1202 DeclData: &mojom_types.DeclarationData{ 1146 DeclData: &mojom_types.DeclarationData{
1203 ShortName: stringPointer("Foo"), 1147 ShortName: stringPointer("Foo"),
1204 FullIdentifier: stringPointer("mojom.test.Foo" ), 1148 FullIdentifier: stringPointer("mojom.test.Foo" ),
1205 DeclaredOrdinal: -1, 1149 DeclaredOrdinal: -1,
1206 DeclarationOrder: -1, 1150 DeclarationOrder: -1,
(...skipping 20 matching lines...) Expand all
1227 DeclData: test.newShortDeclDataO(2, -1, "z"), 1171 DeclData: test.newShortDeclDataO(2, -1, "z"),
1228 Type: &mojom_types.TypeStringType{mo jom_types.StringType{true}}, 1172 Type: &mojom_types.TypeStringType{mo jom_types.StringType{true}},
1229 }, 1173 },
1230 }, 1174 },
1231 }} 1175 }}
1232 1176
1233 // enum Hats 1177 // enum Hats
1234 test.expectedGraph().ResolvedTypes["TYPE_KEY:mojom.test.Foo.Hats "] = &mojom_types.UserDefinedTypeEnumType{mojom_types.MojomEnum{ 1178 test.expectedGraph().ResolvedTypes["TYPE_KEY:mojom.test.Foo.Hats "] = &mojom_types.UserDefinedTypeEnumType{mojom_types.MojomEnum{
1235 DeclData: test.newContainedDeclData("Hats", "mojom.test. Foo.Hats", stringPointer("TYPE_KEY:mojom.test.Foo")), 1179 DeclData: test.newContainedDeclData("Hats", "mojom.test. Foo.Hats", stringPointer("TYPE_KEY:mojom.test.Foo")),
1236 Values: []mojom_types.EnumValue{ 1180 Values: []mojom_types.EnumValue{
1237 // Note(rudominer) It is a bug that we need to c opy the enum values here.
1238 // See https://github.com/domokit/mojo/issues/51 3.
1239 // value TOP 1181 // value TOP
1240 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:mo jom.test.Foo.Hats.TOP"].(*mojom_types.UserDefinedValueEnumValue).Value, 1182 » » » » mojom_types.EnumValue{
1183 » » » » » DeclData: test.newDeclData("TOP", "mojom .test.Foo.Hats.TOP"),
1184 » » » » » IntValue: 0,
1185 » » » » },
1241 // value COWBOY 1186 // value COWBOY
1242 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:mo jom.test.Foo.Hats.COWBOY"].(*mojom_types.UserDefinedValueEnumValue).Value, 1187 » » » » mojom_types.EnumValue{
1188 » » » » » DeclData: test.newDeclData("COWBOY", "mo jom.test.Foo.Hats.COWBOY"),
1189 » » » » » IntValue: 3,
1190 » » » » » InitializerValue: &mojom_types.ValueCons tantReference{mojom_types.ConstantReference{
1191 » » » » » » Identifier: "NUM_MAGI",
1192 » » » » » » ConstantKey: "TYPE_KEY:mojom.tes t.NUM_MAGI",
1193 » » » » » }},
1194 » » » » },
1243 // value HARD 1195 // value HARD
1244 » » » » test.expectedGraph().ResolvedValues["TYPE_KEY:mo jom.test.Foo.Hats.HARD"].(*mojom_types.UserDefinedValueEnumValue).Value, 1196 » » » » mojom_types.EnumValue{
1197 » » » » » DeclData: test.newDeclData("HARD", "mojo m.test.Foo.Hats.HARD"),
1198 » » » » » IntValue: 4,
1199 » » » » },
1245 }, 1200 },
1246 }} 1201 }}
1247 1202
1248 test.endTestCase() 1203 test.endTestCase()
1249 } 1204 }
1250 1205
1251 //////////////////////////////////////////////////////////// 1206 ////////////////////////////////////////////////////////////
1252 // Execute all of the test cases. 1207 // Execute all of the test cases.
1253 //////////////////////////////////////////////////////////// 1208 ////////////////////////////////////////////////////////////
1254 for _, c := range test.cases { 1209 for _, c := range test.cases {
(...skipping 1383 matching lines...) Expand 10 before | Expand all | Expand 10 after
2638 test.expectedFileA().ModuleNamespace = &moduleNameSpace 2593 test.expectedFileA().ModuleNamespace = &moduleNameSpace
2639 test.expectedFileB().ModuleNamespace = &moduleNameSpace 2594 test.expectedFileB().ModuleNamespace = &moduleNameSpace
2640 2595
2641 if importingName != "" { 2596 if importingName != "" {
2642 // Add and import to expected File A. 2597 // Add and import to expected File A.
2643 test.expectedFileA().Imports = new([]string) 2598 test.expectedFileA().Imports = new([]string)
2644 *test.expectedFileA().Imports = append(*test.expectedFileA().Imp orts, test.expectedFileB().FileName) 2599 *test.expectedFileA().Imports = append(*test.expectedFileA().Imp orts, test.expectedFileB().FileName)
2645 } 2600 }
2646 2601
2647 test.expectedGraph().ResolvedTypes = make(map[string]mojom_types.UserDef inedType) 2602 test.expectedGraph().ResolvedTypes = make(map[string]mojom_types.UserDef inedType)
2648 » test.expectedGraph().ResolvedValues = make(map[string]mojom_types.UserDe finedValue) 2603 » test.expectedGraph().ResolvedConstants = make(map[string]mojom_types.Dec laredConstant)
2649 } 2604 }
2650 2605
2651 // endTestCase() should be invoked at the end of a case in 2606 // endTestCase() should be invoked at the end of a case in
2652 // TestSingleFileSerialization. 2607 // TestSingleFileSerialization.
2653 func (test *twoFileTest) endTestCase() { 2608 func (test *twoFileTest) endTestCase() {
2654 test.expectedGraph().Files = make(map[string]mojom_files.MojomFile) 2609 test.expectedGraph().Files = make(map[string]mojom_files.MojomFile)
2655 test.expectedGraph().Files[test.expectedFileA().FileName] = *test.expect edFileA() 2610 test.expectedGraph().Files[test.expectedFileA().FileName] = *test.expect edFileA()
2656 test.expectedGraph().Files[test.expectedFileB().FileName] = *test.expect edFileB() 2611 test.expectedGraph().Files[test.expectedFileB().FileName] = *test.expect edFileB()
2657 test.testCaseNum += 1 2612 test.testCaseNum += 1
2658 } 2613 }
(...skipping 858 matching lines...) Expand 10 before | Expand all | Expand 10 after
3517 } 3472 }
3518 return fmt.Errorf("*****\nexpected=\n*****\n%q\n*****\na ctual=\n*****\n%q\n*****\n"+ 3473 return fmt.Errorf("*****\nexpected=\n*****\n%q\n*****\na ctual=\n*****\n%q\n*****\n"+
3519 "match failed at position %d: expected=\n*****\n %q\n******\nactual=\n*****\n%q\n******\n", 3474 "match failed at position %d: expected=\n*****\n %q\n******\nactual=\n*****\n%q\n******\n",
3520 expectedString, actualString, diffPos, mismatchE xpected, mismatchActual) 3475 expectedString, actualString, diffPos, mismatchE xpected, mismatchActual)
3521 } else { 3476 } else {
3522 return fmt.Errorf("expected != actual but the two printe d equal.") 3477 return fmt.Errorf("expected != actual but the two printe d equal.")
3523 } 3478 }
3524 } 3479 }
3525 return nil 3480 return nil
3526 } 3481 }
OLDNEW
« no previous file with comments | « mojom/mojom_tool/serialization/serialization.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698