• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作図ソフト dia の改良版


コミットメタ情報

リビジョンdce6d44254e1a95f06204ba02e08a78b95bd9348 (tree)
日時2015-01-12 05:11:44
作者Hans Breuer <hans@breu...>
コミッターHans Breuer

ログメッセージ

[unit test] fix mismatch between PropDescription and PropOffset

Some objects described themselves to be Element, but were indeed OrthConn.
Few of these issues were originally found by visual inspection of
"Object Types.dia" (from otypes.py). But with the new test more mismatches
were found and fixed.

変更サマリ

差分

--- a/lib/standard-path.c
+++ b/lib/standard-path.c
@@ -145,6 +145,7 @@ static PropOffset stdpath_offsets[] = {
145145 { PROP_STDNAME_LINE_WIDTH, PROP_STDTYPE_LINE_WIDTH, offsetof(StdPath, line_width) },
146146 { "line_colour", PROP_TYPE_COLOUR, offsetof(StdPath, line_color) },
147147 { "line_style", PROP_TYPE_LINESTYLE, offsetof(StdPath, line_style), offsetof(StdPath, dashlength) },
148+ { "line_join", PROP_TYPE_ENUM, offsetof(StdPath, line_join) },
148149 { "line_caps", PROP_TYPE_ENUM, offsetof(StdPath, line_caps) },
149150 { "fill_colour", PROP_TYPE_COLOUR, offsetof(StdPath, fill_color) },
150151 { "show_background", PROP_TYPE_BOOL, offsetof(StdPath, show_background) },
--- a/objects/FS/flow-ortho.c
+++ b/objects/FS/flow-ortho.c
@@ -162,7 +162,7 @@ static PropEnumData prop_orthflow_type_data[] = {
162162 };
163163
164164 static PropDescription orthflow_props[] = {
165- ELEMENT_COMMON_PROPERTIES,
165+ ORTHCONN_COMMON_PROPERTIES,
166166 { "type", PROP_TYPE_ENUM, PROP_FLAG_VISIBLE,
167167 N_("Type:"), NULL, prop_orthflow_type_data },
168168 { "text", PROP_TYPE_TEXT, 0, NULL, NULL },
@@ -184,7 +184,7 @@ orthflow_describe_props(Orthflow *mes)
184184 }
185185
186186 static PropOffset orthflow_offsets[] = {
187- OBJECT_COMMON_PROPERTIES_OFFSETS,
187+ ORTHCONN_COMMON_PROPERTIES_OFFSETS,
188188 { "type", PROP_TYPE_ENUM, offsetof(Orthflow, type) },
189189 { "text", PROP_TYPE_TEXT, offsetof (Orthflow, text) },
190190 { "text_alignment", PROP_TYPE_ENUM, offsetof(Orthflow,text),offsetof(Text,alignment) },
--- a/objects/FS/flow.c
+++ b/objects/FS/flow.c
@@ -139,7 +139,7 @@ static PropEnumData prop_flow_type_data[] = {
139139 };
140140
141141 static PropDescription flow_props[] = {
142- OBJECT_COMMON_PROPERTIES,
142+ CONNECTION_COMMON_PROPERTIES,
143143 { "type", PROP_TYPE_ENUM, PROP_FLAG_VISIBLE,
144144 N_("Type:"), NULL, prop_flow_type_data },
145145 { "text", PROP_TYPE_TEXT, 0, NULL, NULL },
@@ -161,7 +161,7 @@ flow_describe_props(Flow *mes)
161161 }
162162
163163 static PropOffset flow_offsets[] = {
164- OBJECT_COMMON_PROPERTIES_OFFSETS,
164+ CONNECTION_COMMON_PROPERTIES_OFFSETS,
165165 { "type", PROP_TYPE_ENUM, offsetof(Flow, type) },
166166 { "text", PROP_TYPE_TEXT, offsetof (Flow, text) },
167167 { "text_alignment", PROP_TYPE_ENUM, offsetof(Flow,text),offsetof(Text,alignment) },
--- a/objects/FS/function.c
+++ b/objects/FS/function.c
@@ -158,7 +158,7 @@ function_describe_props(Function *mes)
158158 }
159159
160160 static PropOffset function_offsets[] = {
161- OBJECT_COMMON_PROPERTIES_OFFSETS,
161+ ELEMENT_COMMON_PROPERTIES_OFFSETS,
162162 { "wish function", PROP_TYPE_BOOL, offsetof(Function, is_wish) },
163163 { "user function", PROP_TYPE_BOOL, offsetof(Function, is_user) },
164164 { "text", PROP_TYPE_TEXT, offsetof (Function, text) },
--- a/objects/UML/implements.c
+++ b/objects/UML/implements.c
@@ -149,6 +149,7 @@ implements_describe_props(Implements *implements)
149149 static PropOffset implements_offsets[] = {
150150 CONNECTION_COMMON_PROPERTIES_OFFSETS,
151151 { "text", PROP_TYPE_STRING, offsetof(Implements, text) },
152+ { "name", PROP_TYPE_STRING, offsetof(Implements, text) },
152153 { "text_font", PROP_TYPE_FONT, offsetof(Implements, font) },
153154 { PROP_STDNAME_TEXT_HEIGHT, PROP_STDTYPE_TEXT_HEIGHT, offsetof(Implements, font_height) },
154155 { "text_colour",PROP_TYPE_COLOUR,offsetof(Implements, text_color) },
--- a/objects/network/bus.c
+++ b/objects/network/bus.c
@@ -132,7 +132,7 @@ static ObjectOps bus_ops = {
132132 };
133133
134134 static PropDescription bus_props[] = {
135- OBJECT_COMMON_PROPERTIES,
135+ CONNECTION_COMMON_PROPERTIES,
136136 PROP_STD_LINE_COLOUR,
137137 PROP_DESC_END
138138 };
@@ -146,7 +146,7 @@ bus_describe_props(Bus *bus)
146146 }
147147
148148 static PropOffset bus_offsets[] = {
149- OBJECT_COMMON_PROPERTIES_OFFSETS,
149+ CONNECTION_COMMON_PROPERTIES_OFFSETS,
150150 { "line_colour", PROP_TYPE_COLOUR, offsetof(Bus, line_color) },
151151 { NULL, 0, 0 }
152152 };
--- a/objects/network/wanlink.c
+++ b/objects/network/wanlink.c
@@ -114,7 +114,7 @@ DiaObjectType wanlink_type =
114114 };
115115
116116 static PropDescription wanlink_props[] = {
117- OBJECT_COMMON_PROPERTIES,
117+ CONNECTION_COMMON_PROPERTIES,
118118 { "width", PROP_TYPE_REAL, PROP_FLAG_VISIBLE,
119119 N_("Width"), NULL, NULL },
120120 PROP_STD_LINE_COLOUR,
@@ -131,7 +131,7 @@ wanlink_describe_props(WanLink *wanlink)
131131 }
132132
133133 static PropOffset wanlink_offsets[] = {
134- OBJECT_COMMON_PROPERTIES_OFFSETS,
134+ CONNECTION_COMMON_PROPERTIES_OFFSETS,
135135 { "width", PROP_TYPE_REAL, offsetof(WanLink, width) },
136136 { "line_colour", PROP_TYPE_COLOUR, offsetof(WanLink, line_color) },
137137 { "fill_colour", PROP_TYPE_COLOUR, offsetof(WanLink, fill_color) },
--- a/tests/test-objects.c
+++ b/tests/test-objects.c
@@ -69,10 +69,31 @@ _test_creation (gconstpointer user_data)
6969 {
7070 const PropDescription *pdesc = o->ops->describe_props (o);
7171 /* get all properties */
72- GPtrArray *plist = prop_list_from_descs (pdesc, pdtpp_true);
73-
74- g_assert (plist != NULL);
75- prop_list_free(plist);
72+ GPtrArray *props = prop_list_from_descs (pdesc, pdtpp_true);
73+ int num_described = props->len;
74+ int num_used = 0;
75+
76+ /* Indirect check of object's private PropDescription and PropOffset array.
77+ * Both arrays should be same length (reference the same properties).
78+ * But the latter is only visible as parameter to object_get_props_from_offsets(),
79+ * at least for objects not intialzing DiaObjectType::prop_offsets
80+ */
81+ o->ops->get_props (o, props);
82+ for (i = 0; i < num_described; ++i) {
83+ Property *prop = (Property*)g_ptr_array_index(props,i);
84+ if ((prop->experience & PXP_NOTSET) == 0)
85+ ++num_used;
86+ else if ((prop->descr->flags & PROP_FLAG_WIDGET_ONLY) != 0)
87+ ++num_used; /* ... but not expected to be set */
88+ else if (strcmp (prop->descr->type, PROP_TYPE_STATIC) == 0)
89+ ++num_used; /* also not to be set */
90+ else
91+ g_print ("Not set '%s'\n", prop->descr->name);
92+ }
93+ g_assert_cmpint (num_used, ==, num_described);
94+
95+ g_assert (props != NULL);
96+ prop_list_free(props);
7697 }
7798 /* not implemented anywhere */
7899 g_assert (o->ops->edit_text == NULL);