File tree Expand file tree Collapse file tree 5 files changed +84
-17
lines changed
tests/fsharpqa/Source/XmlDoc Expand file tree Collapse file tree 5 files changed +84
-17
lines changed Original file line number Diff line number Diff line change @@ -648,8 +648,9 @@ module XmlDocWriter =
648648 (* the xmlDocSigOf* functions encode type into string to be used in "id" *)
649649 let members = ref []
650650 let addMember id xmlDoc =
651- let doc = getDoc xmlDoc
652- members := ( id, doc) :: ! members
651+ if hasDoc xmlDoc then
652+ let doc = getDoc xmlDoc
653+ members := ( id, doc) :: ! members
653654 let doVal ( v : Val ) = addMember v.XmlDocSig v.XmlDoc
654655 let doUnionCase ( uc : UnionCase ) = addMember uc.XmlDocSig uc.XmlDoc
655656 let doField ( rf : RecdField ) = addMember rf.XmlDocSig rf.XmlDoc
Original file line number Diff line number Diff line change 22 SOURCE=xmlDoc002.fs SCFLAGS="-r:System.Xml.dll --doc:xmlDoc002.xml --define:WITHXMLVERIFICATION" # xmlDoc002.fs
33 SOURCE=xmlDoc003.fs SCFLAGS="-r:System.Xml.dll --doc:xmlDoc003.xml --define:WITHXMLVERIFICATION" # xmlDoc003.fs
44 SOURCE=xmlDoc004.fs SCFLAGS="-r:System.Xml.dll --doc:xmlDoc004.xml --define:WITHXMLVERIFICATION" # xmlDoc004.fs
5+ SOURCE=xmlDoc005.fs SCFLAGS="-r:System.Xml.dll --doc:xmlDoc005.xml --define:WITHXMLVERIFICATION" # xmlDoc005.fs
56 SOURCE=XMLDocOnEnum01.fs SCFLAGS="-r:System.Xml.dll --doc:XMLDocOnEnum01.xml --define:WITHXMLVERIFICATION" # XMLDocOnEnum01.fs
67
Original file line number Diff line number Diff line change 1+ // #Regression #XMLDoc
2+ // Verify that XmlDoc names are generated, but no empty members are generated re: issue #148
3+ //<Expects status=success></Expects>
4+
5+ #light
6+
7+ namespace MyRather.MyDeep.MyNamespace
8+ open System.Xml
9+
10+ /// class1
11+ type Class1 () =
12+ /// x
13+ member this.X = " X"
14+
15+ type Class2 () =
16+ member this.Y = " Y"
17+
18+ ///testModule
19+ module MyModule =
20+
21+ let check ( xml : XmlDocument ) name xmlDoc =
22+ let foundDoc = (( xml.SelectSingleNode ( " /doc/members/member[@name='" + name + " ']" )) .SelectSingleNode " summary" ) .InnerText.Trim()
23+ if xmlDoc <> foundDoc then
24+ printfn " %s : generated xmlDoc <%s > differs from excpected <%s >" name foundDoc xmlDoc
25+ xmlDoc = foundDoc
26+
27+ let hasEmptyMembers ( xml : XmlDocument ) =
28+ let node = xml.SelectSingleNode ( " /doc/members/member[@name='']" )
29+ if node <> null then
30+ printfn " Empty member name entries found."
31+ node <> null
32+
33+ let test =
34+ let myname = System.Reflection.Assembly.GetExecutingAssembly() .Location
35+ let xmlname = System.IO.Path.ChangeExtension( myname, " xml" )
36+
37+
38+ #if WITHXMLVERIFICATION
39+ let xml = new XmlDocument()
40+ xml.Load xmlname
41+ if check xml " P:MyRather.MyDeep.MyNamespace.Class1.X" " x"
42+ && check xml " T:MyRather.MyDeep.MyNamespace.Class1" " class1"
43+ && not ( hasEmptyMembers xml)
44+ then 0 else 1
45+ #else
46+ 0
47+ #endif
48+
49+ test |> exit
Original file line number Diff line number Diff line change @@ -21,16 +21,24 @@ let test =
2121 xml.Load( xmlname)
2222
2323 let a1 = xml.GetElementsByTagName( " summary" ) .Item( 0 ) .FirstChild.Value = " This is B"
24- if not a1 then printfn " a1: expected: This is B" ; exit 1
24+ if not a1 then
25+ printfn " a1: expected: This is B"
26+ exit 1
2527
2628 let a2 = xml.GetElementsByTagName( " summary" ) .Item( 1 ) .FirstChild.Value = " This is A"
27- if not a2 then printfn " a2: expected: This is A" ; exit 1
28-
29- let a3 = xml.GetElementsByTagName( " member" ) .Item( 1 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure01.B(System.Single)"
30- if not a3 then printfn " a3: expected: M:UnitOfMeasure01.B(System.Single)" ; exit 1
31-
32- let a4 = xml.GetElementsByTagName( " member" ) .Item( 2 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure01.A(System.Double)"
33- if not a4 then printfn " a4: expected: M:UnitOfMeasure01.A(System.Double)" ; exit 1
29+ if not a2 then
30+ printfn " a2: expected: This is A"
31+ exit 1
32+
33+ let a3 = xml.GetElementsByTagName( " member" ) .Item( 0 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure01.B(System.Single)"
34+ if not a3 then
35+ printfn " a3: expected: M:UnitOfMeasure01.B(System.Single)"
36+ exit 1
37+
38+ let a4 = xml.GetElementsByTagName( " member" ) .Item( 1 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure01.A(System.Double)"
39+ if not a4 then
40+ printfn " a4: expected: M:UnitOfMeasure01.A(System.Double)"
41+ exit 1
3442#endif
3543 0
3644
Original file line number Diff line number Diff line change @@ -24,16 +24,24 @@ let test =
2424 xml.Load( xmlname)
2525
2626 let a1 = xml.GetElementsByTagName( " summary" ) .Item( 0 ) .FirstChild.Value = " This is B"
27- if not a1 then printfn " a1: expected: This is B" ; exit 1
27+ if not a1 then
28+ printfn " a1: expected: This is B"
29+ exit 1
2830
2931 let a2 = xml.GetElementsByTagName( " summary" ) .Item( 1 ) .FirstChild.Value = " This is A"
30- if not a2 then printfn " a2: expected: This is A" ; exit 1
32+ if not a2 then
33+ printfn " a2: expected: This is A"
34+ exit 1
3135
32- let a3 = xml.GetElementsByTagName( " member" ) .Item( 1 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure02.B(System.Int32,System.Int32)"
33- if not a3 then printfn " a3: expected: M:UnitOfMeasure02.B(System.Int32,System.Int32)" ; exit 1
34-
35- let a4 = xml.GetElementsByTagName( " member" ) .Item( 2 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure02.A(System.Double)"
36- if not a4 then printfn " a4: expected: M:UnitOfMeasure02.A(System.Double)" ; exit 1
36+ let a3 = xml.GetElementsByTagName( " member" ) .Item( 0 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure02.B(System.Int32,System.Int32)"
37+ if not a3 then
38+ printfn " a3: expected: M:UnitOfMeasure02.B(System.Int32,System.Int32)"
39+ exit 1
40+
41+ let a4 = xml.GetElementsByTagName( " member" ) .Item( 1 ) .Attributes.Item( 0 ) .Value = " M:UnitOfMeasure02.A(System.Double)"
42+ if not a4 then
43+ printfn " a4: expected: M:UnitOfMeasure02.A(System.Double)"
44+ exit 1
3745#endif
3846 0
3947
You can’t perform that action at this time.
0 commit comments