www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2012/08/28/18:58:11

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlemail.com; s=20120113;
h=message-id:date:from:user-agent:mime-version:to:subject
:x-enigmail-version:content-type;
bh=L4FFCJqcO+KGDUkLWO9apq/vaqp0gyKOh8uacgnCc8I=;
b=DZ9nwEiR9hFvOUKYohvDbRnkTgQVFMYP2k8/tmMKFUfrDOXnVBFM0BH1c8TK0aGBXy
DHs04Gp4LVUyw9R+wvXS+Wb9KYKXndegmOovTTu3R0DI3Cx4AuQmcPz2h0zKguHlUKlN
7dPobgD7J0mcOux0bP37sOL2eVE9Ls5RjYjApgRb9fylcwuqSqp3FI0BbDmlwz239zNH
j2xywvpxLrQuCECaK9EoNaNKfGfjKCw++zMozNN049qoXd+zUjyc4WO8mglOctFspyUy
TMUalOvepOE8i0S8Y62Q2A9Ujfq9wwyR3oZ33J1Bzs/Ftn3jBuXyhhzPWjNVpOiRxbx1
rs/g==
Message-ID: <503D4CC0.7030504@googlemail.com>
Date: Tue, 28 Aug 2012 23:57:04 +0100
From: Andy Busse <andy DOT j DOT busse AT googlemail DOT com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120717 Thunderbird/14.0
MIME-Version: 1.0
To: geda-user AT delorie DOT com
Subject: [geda-user] gsymcheck patch: check symbol for default colours
X-Enigmail-Version: 1.4.4
Reply-To: geda-user AT delorie DOT com

This is a multi-part message in MIME format.
--------------070507050706090104010107
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hi,

I've attached some patches to gsymcheck which adds the ability to check
whether the symbol uses the default colours as set out in the wiki.

If it's of any use, I'd like to carry this on and add more functionality
to gsymcheck, possibly to automatically correcting symbols if the user
requests - it'd be nice if gsymcheck found no warnings with anything in
the symbols/ directory

I've tried to follow the same style found in the rest of the file, any
comments/suggestions would be most welcome.

One thing I did notice is that there appears to be a lot of "count++"
going on - any reason for doing this and not using g_list_length,
considering the counts are usually pretty small?

Thanks,
Andy

--------------070507050706090104010107
Content-Type: text/x-patch;
 name="0001-gsymcheck-Add-a-check-for-the-colour-of-objects-thei.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename*0="0001-gsymcheck-Add-a-check-for-the-colour-of-objects-thei.pa";
 filename*1="tch"

From 2aff6f53b3b474ba6e4c66d3ba889252bec96e47 Mon Sep 17 00:00:00 2001
From: Andrew Busse <andy.j.busse+git AT googlemail DOT com>
Date: Tue, 28 Aug 2012 20:17:00 +0100
Subject: [PATCH 1/3] gsymcheck: Add a check for the colour of objects & their
 attributes

s_check_color checks the colour all of the visible objects in the symbol against
the recommended set of colors from the wiki.

o_attrib_find_attrib_by_name has been moved to prototype.h as s_check_color
needs to get at the color and visibility of the pinnumber and pinlabel
attributes.
---
 gsymcheck/include/prototype.h       |   3 +-
 gsymcheck/src/s_check.c             | 141 ++++++++++++++++++++++++++++++++++++
 libgeda/include/libgeda/prototype.h |   1 +
 libgeda/include/prototype_priv.h    |   1 -
 4 files changed, 144 insertions(+), 2 deletions(-)

diff --git a/gsymcheck/include/prototype.h b/gsymcheck/include/prototype.h
index b71ab0e..8caca04 100644
--- a/gsymcheck/include/prototype.h
+++ b/gsymcheck/include/prototype.h
@@ -31,7 +31,8 @@ void s_check_connections(const GList *obj_list, SYMCHECK *s_current);
 void s_check_missing_attribute(OBJECT *object, char *attribute, SYMCHECK *s_current);
 void s_check_missing_attributes(const GList *obj_list, SYMCHECK *s_current);
 void s_check_pintype(const GList *obj_list, SYMCHECK *s_current);
-/* s_log.c */
+void s_check_color(const GList *obj_list, SYMCHECK *s_current);
+//* s_log.c */
 void s_log_update (const gchar *log_domain, GLogLevelFlags log_level, const gchar *buf);
 /* s_symstruct.c */
 SYMCHECK *s_symstruct_init(void);
diff --git a/gsymcheck/src/s_check.c b/gsymcheck/src/s_check.c
index d66106f..249e450 100644
--- a/gsymcheck/src/s_check.c
+++ b/gsymcheck/src/s_check.c
@@ -117,6 +117,9 @@ s_check_symbol (TOPLEVEL *pr_current, PAGE *p_current, const GList *obj_list)
   /* check for connections with in a symbol (completely disallowed) */
   s_check_connections (obj_list, s_symcheck);
 
+  /* check whether objects use the correct colors */
+  s_check_color (obj_list, s_symcheck);
+
   /* now report the info/warnings/errors to the user */
   if (!quiet_mode) {
     
@@ -1415,3 +1418,141 @@ void s_check_pintype (const GList *obj_list, SYMCHECK *s_current)
     }
   }
 }
+
+/* This function looks at all of the visible objects and attributes in the
+ * symbol, then checks the object's color against the recommended color from
+ * http://wiki.geda-project.org/geda:gschem_symbol_creation
+ * A warning message is thrown if incorrect colors appear in the symbol.
+ */
+void
+s_check_color (const GList *obj_list, SYMCHECK *s_current)
+{
+  const GList *iter;
+  char *message;
+  GList *attributes = NULL;
+  OBJECT *pinnumber, *pinlabel;
+
+  for (iter = obj_list; iter != NULL; iter = g_list_next (iter)) {
+    OBJECT *o_current = iter->data;
+
+    /* As we're checking the color of all objects, we don't really care about an
+     * object's color if it's visible */
+    if (o_current->visibility == VISIBLE) {
+      switch (o_current->type){
+        case OBJ_PIN:
+          attributes = o_attrib_return_attribs(o_current);
+          pinnumber = o_attrib_find_attrib_by_name(attributes,"pinnumber",0);
+          pinlabel = o_attrib_find_attrib_by_name(attributes,"pinlabel",0);
+
+          /* If a pin has no pinnumber or pinlabel, this will be picked up as an
+           * error by s_check_missing_attributes. Here, we are only checking for
+           * the color. Again, check for visibility as the pin number doesn't
+           * have to be visible */
+          if (pinnumber != NULL) {
+            if (pinnumber->color != ATTRIBUTE_COLOR && pinnumber->visibility == VISIBLE) {
+              message = g_strdup_printf("%s not using attribute color\n",
+                                        pinnumber->text->string);
+              s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                          message);
+              s_current->warning_count++;
+            }
+          }
+
+          /* We also need to check whether the pin label exists, and  is visible */
+          if (pinlabel != NULL) {
+            if (pinlabel->color != TEXT_COLOR && pinlabel->visibility==VISIBLE) {
+              message = g_strdup_printf("%s not using text color\n",
+                                        pinlabel->text->string);
+              s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                          message);
+              s_current->warning_count++;
+            }
+          }
+
+          if (o_current->color != PIN_COLOR) {
+            message = g_strdup_printf("Pin %s at (x1=%d,y1=%d) not using pin color\n",
+                                      o_attrib_search_object_attribs_by_name(o_current,"pinnumber",0),
+                                      o_current->line->x[0],o_current->line->y[0]);
+            s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                        message);
+            s_current->warning_count++;
+          }
+
+          g_list_free(attributes);
+          break;
+        case OBJ_LINE:
+          if (o_current->color != GRAPHIC_COLOR) {
+            message = g_strdup_printf("Line at (x1=%d,y1=%d) not using graphic color\n",
+                                    o_current->line->x[0], o_current->line->y[0]);
+            s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                      message);
+            s_current->warning_count++;
+          }
+
+          break;
+        case OBJ_BOX:
+          if (o_current->color != GRAPHIC_COLOR) {
+            message = g_strdup_printf("Box at (x1=%d,y1=%d) not using graphic color\n",
+                                      o_current->box->upper_x, o_current->box->upper_y);
+            s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                        message);
+            s_current->warning_count++;
+          }
+
+          break;
+        case OBJ_ARC:
+          if (o_current->color != GRAPHIC_COLOR) {
+            message = g_strdup_printf("Arc with center (x1=%d,y1=%d) not using graphic color\n",
+                                      o_current->arc->x, o_current->arc->y);
+            s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                        message);
+            s_current->warning_count++;
+          }
+
+          break;
+        case OBJ_CIRCLE:
+          if (o_current->color == LOGIC_BUBBLE_COLOR) {
+            message = g_strdup_printf("Found logic bubble at (x1=%d,y1=%d)\n",
+                                      o_current->circle->center_x, o_current->circle->center_y);
+            s_current->info_messages = g_list_append(s_current->info_messages,
+                                                     message);
+          } else if (o_current->color != (GRAPHIC_COLOR)) {
+            message = g_strdup_printf("Circle with center (x1=%d,y1=%d) not using graphic "
+                                      "or logic bubble color\n", o_current->circle->center_x,
+                                      o_current->circle->center_y);
+            s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                        message);
+            s_current->warning_count++;
+          }
+
+          break;
+        case OBJ_TEXT:
+          /* Not defined in the guidelines document, but most symbols seem to have
+           * their refdes as DETACHED_ATTRIBUTE_COLOR */
+          if (strstr(o_current->text->string, "refdes=")) {
+            if (o_current->color != DETACHED_ATTRIBUTE_COLOR) {
+              message = g_strdup_printf("%s not using detached attribute color\n",
+                                        o_current->text->string);
+              s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                          message);
+              s_current->warning_count++;
+            }
+          /* o_current->attached_to ensures the text object isn't actually an
+           * attribute of another object (e.g. pinnumber, pinlabel are text
+           * objects). */
+          } else if (o_current->color != TEXT_COLOR && o_current->attached_to == NULL) {
+            message = g_strdup_printf("Text \"%s\" at (x1=%d,y1=%d) not using text color\n",
+                                      o_current->text->string, o_current->text->x,
+                                      o_current->text->y);
+            s_current->warning_messages = g_list_append(s_current->warning_messages,
+                                                        message);
+            s_current->warning_count++;
+          }
+
+          break;
+        default:
+          break;
+      }
+    }
+  }
+}
diff --git a/libgeda/include/libgeda/prototype.h b/libgeda/include/libgeda/prototype.h
index 60e6a18..baef641 100644
--- a/libgeda/include/libgeda/prototype.h
+++ b/libgeda/include/libgeda/prototype.h
@@ -84,6 +84,7 @@ void o_attrib_remove(TOPLEVEL *toplevel, GList **list, OBJECT *remove);
 gboolean o_attrib_string_get_name_value (const gchar *string, gchar **name_ptr, gchar **value_ptr);
 gboolean o_attrib_get_name_value (OBJECT *attrib, gchar **name_ptr, gchar **value_ptr);
 GList *o_attrib_find_floating_attribs (const GList *list);
+OBJECT *o_attrib_find_attrib_by_name(const GList *list, char *name, int count);
 char *o_attrib_search_floating_attribs_by_name (const GList *list, char *name, int counter);
 char *o_attrib_search_attached_attribs_by_name (OBJECT *object, char *name, int counter);
 char *o_attrib_search_inherited_attribs_by_name (OBJECT *object, char *name, int counter);
diff --git a/libgeda/include/prototype_priv.h b/libgeda/include/prototype_priv.h
index b3faa6d..5a33cbe 100644
--- a/libgeda/include/prototype_priv.h
+++ b/libgeda/include/prototype_priv.h
@@ -90,7 +90,6 @@ GList *o_read_attribs(TOPLEVEL *toplevel,
                       TextBuffer *tb,
                       unsigned int release_ver,
                       unsigned int fileformat_ver, GError **err);
-OBJECT *o_attrib_find_attrib_by_name(const GList *list, char *name, int count);
 
 /* o_basic.c */
 void o_bounds_invalidate(TOPLEVEL *toplevel, OBJECT *object);
-- 
1.7.11.4


--------------070507050706090104010107
Content-Type: text/x-patch;
 name="0002-gsymcheck-Fix-incorrect-colours-in-some-of-the-test-.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename*0="0002-gsymcheck-Fix-incorrect-colours-in-some-of-the-test-.pa";
 filename*1="tch"

From 6face3781ce64b7086a2396982e66cde33df7633 Mon Sep 17 00:00:00 2001
From: Andrew Busse <andy.j.busse+git AT googlemail DOT com>
Date: Tue, 28 Aug 2012 20:23:28 +0100
Subject: [PATCH 2/3] gsymcheck: Fix incorrect colours in some of the test
 files

16877d6772 introduced an extra check for symbol colours, this caused the test
suite to fail as some of these symbols had incorrect colours. This commit sets
them to the recommended set of colours, and the test suite now passes.
---
 gsymcheck/tests/duplicate_net.sym        |  4 ++--
 gsymcheck/tests/lots_of_errors.sym       |  2 +-
 gsymcheck/tests/misplaced_attributes.sym | 10 +++++-----
 gsymcheck/tests/old_symbol.sym           |  2 +-
 gsymcheck/tests/pin_offgrid.sym          | 20 ++++++++++----------
 gsymcheck/tests/text_errors.sym          |  8 ++++----
 gsymcheck/tests/urefinside.sym           |  2 +-
 7 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/gsymcheck/tests/duplicate_net.sym b/gsymcheck/tests/duplicate_net.sym
index e61ea6a..73f5d25 100644
--- a/gsymcheck/tests/duplicate_net.sym
+++ b/gsymcheck/tests/duplicate_net.sym
@@ -57,7 +57,7 @@ pintype=in
 }
 T 300 900 8 10 1 1 0 0 1
 refdes=U?
-T 1800 1100 8 10 1 0 0 0 1
+T 1800 1100 9 10 1 0 0 0 1
 net=INVALID:1,5
-T 1800 900 8 10 1 0 0 0 1
+T 1800 900 9 10 1 0 0 0 1
 net=INVALID:5,6,6
diff --git a/gsymcheck/tests/lots_of_errors.sym b/gsymcheck/tests/lots_of_errors.sym
index dec6aed..8c7016e 100644
--- a/gsymcheck/tests/lots_of_errors.sym
+++ b/gsymcheck/tests/lots_of_errors.sym
@@ -43,5 +43,5 @@ pinseq=1
 T 100 750 5 8 1 1 0 0
 pinnumber=1
 }
-T 300 900 8 10 1 1 0 0
+T 300 900 9 10 1 1 0 0
 uref=U?
diff --git a/gsymcheck/tests/misplaced_attributes.sym b/gsymcheck/tests/misplaced_attributes.sym
index 6b2b884..0cefb05 100644
--- a/gsymcheck/tests/misplaced_attributes.sym
+++ b/gsymcheck/tests/misplaced_attributes.sym
@@ -24,7 +24,7 @@ T 1500 3600 5 10 1 0 0 0 1
 pintype=io
 T 1500 3400 5 10 1 0 0 0 1
 pinseq=2
-T 1500 4000 5 10 1 0 0 0 1
+T 1500 4000 9 10 1 0 0 0 1
 pinlabel=xxxx
 T 1500 3800 5 10 1 0 0 0 1
 pinnumber=2
@@ -53,13 +53,13 @@ V 5103 3599 600 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
 T 5100 3600 5 10 1 1 0 0 1
 comment=attached to circle
 }
-T 4600 5500 8 10 1 0 0 0 1
+T 4600 5500 9 10 1 0 0 0 1
 pinlabel=not attached
-T 4600 5200 8 10 1 0 0 0 1
+T 4600 5200 9 10 1 0 0 0 1
 pinseq=3
-T 4600 4900 8 10 1 0 0 0 1
+T 4600 4900 9 10 1 0 0 0 1
 pinnumber=3
-T 4600 4600 8 10 1 0 0 0 1
+T 4600 4600 9 10 1 0 0 0 1
 pintype=io
 B 4500 4500 2200 1200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
 T 4500 5800 9 10 1 0 0 0 1
diff --git a/gsymcheck/tests/old_symbol.sym b/gsymcheck/tests/old_symbol.sym
index 8e93acb..cf49229 100644
--- a/gsymcheck/tests/old_symbol.sym
+++ b/gsymcheck/tests/old_symbol.sym
@@ -45,5 +45,5 @@ pin1=1
 T 100 750 5 8 0 1 0 0
 pintype=123just a type
 }
-T 300 900 8 10 1 1 0 0
+T 300 900 9 10 1 1 0 0
 uref=U?
diff --git a/gsymcheck/tests/pin_offgrid.sym b/gsymcheck/tests/pin_offgrid.sym
index f3f72f0..592ad1c 100644
--- a/gsymcheck/tests/pin_offgrid.sym
+++ b/gsymcheck/tests/pin_offgrid.sym
@@ -3,7 +3,7 @@ P 701 3600 401 3600 1 0 1
 {
 T 400 3600 5 10 0 0 0 0 1
 pintype=in
-T 755 3595 5 10 1 1 0 0 1
+T 755 3595 9 10 1 1 0 0 1
 pinlabel=Test: pin x1, x2 offgrid, whichend 1
 T 605 3645 5 10 1 1 0 6 1
 pinnumber=1
@@ -14,7 +14,7 @@ P 400 4000 700 4000 1 0 0
 {
 T 400 4000 5 10 0 0 0 0 1
 pintype=in
-T 755 3995 5 10 1 1 0 0 1
+T 755 3995 9 10 1 1 0 0 1
 pinlabel=Test: Pin OK
 T 605 4045 5 10 1 1 0 6 1
 pinnumber=2
@@ -25,7 +25,7 @@ P 410 2800 700 2800 1 0 0
 {
 T 400 2800 5 10 0 0 0 0 1
 pintype=in
-T 755 2795 5 10 1 1 0 0 1
+T 755 2795 9 10 1 1 0 0 1
 pinlabel=Test: x1 offgrid
 T 605 2845 5 10 1 1 0 6 1
 pinnumber=3
@@ -36,7 +36,7 @@ P 400 2420 700 2400 1 0 0
 {
 T 400 2400 5 10 0 0 0 0 1
 pintype=in
-T 755 2395 5 10 1 1 0 0 1
+T 755 2395 9 10 1 1 0 0 1
 pinlabel=Test: y1 offgrid
 T 605 2445 5 10 1 1 0 6 1
 pinnumber=4
@@ -47,7 +47,7 @@ P 400 2000 710 2000 1 0 0
 {
 T 400 2000 5 10 0 0 0 0 1
 pintype=in
-T 755 1995 5 10 1 1 0 0 1
+T 755 1995 9 10 1 1 0 0 1
 pinlabel=Test: x2 offgrid
 T 605 2045 5 10 1 1 0 6 1
 pinnumber=5
@@ -58,7 +58,7 @@ P 400 1600 700 1620 1 0 0
 {
 T 400 1600 5 10 0 0 0 0 1
 pintype=in
-T 755 1595 5 10 1 1 0 0 1
+T 755 1595 9 10 1 1 0 0 1
 pinlabel=Test: y2 offgrid
 T 605 1645 5 10 1 1 0 6 1
 pinnumber=6
@@ -69,7 +69,7 @@ P 404 1204 700 1200 1 0 0
 {
 T 400 1200 5 10 0 0 0 0 1
 pintype=in
-T 755 1195 5 10 1 1 0 0 1
+T 755 1195 9 10 1 1 0 0 1
 pinlabel=Test: x1, y1 offgrid
 T 605 1245 5 10 1 1 0 6 1
 pinnumber=7
@@ -80,7 +80,7 @@ P 400 800 706 806 1 0 0
 {
 T 400 800 5 10 0 0 0 0 1
 pintype=in
-T 755 795 5 10 1 1 0 0 1
+T 755 795 9 10 1 1 0 0 1
 pinlabel=Test: x2, y2 offgrid
 T 605 845 5 10 1 1 0 6 1
 pinnumber=8
@@ -91,7 +91,7 @@ P 400 3204 700 3204 1 0 0
 {
 T 400 3200 5 10 0 0 0 0 1
 pintype=in
-T 755 3195 5 10 1 1 0 0 1
+T 755 3195 9 10 1 1 0 0 1
 pinlabel=Test: pin y1,y2 offgrid, whichend 0
 T 605 3245 5 10 1 1 0 6 1
 pinnumber=9
@@ -101,7 +101,7 @@ pinseq=9
 B 700 500 3100 3900 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
 T 700 4500 9 10 1 0 0 0 1
 pin_ongrid test
-T 700 4700 9 10 1 0 0 0 1
+T 700 4700 8 10 1 0 0 0 1
 refdes=X?
 T 700 4900 9 10 1 0 0 0 1
 footprint=xx
diff --git a/gsymcheck/tests/text_errors.sym b/gsymcheck/tests/text_errors.sym
index 6e26570..5039f6e 100644
--- a/gsymcheck/tests/text_errors.sym
+++ b/gsymcheck/tests/text_errors.sym
@@ -4,7 +4,7 @@ P 0 200 300 200 1 0 0
 {
 T 0 200 5 10 0 0 0 0 1
 pintype=in
-T 355 195 5 10 1 1 0 0 1
+T 355 195 9 10 1 1 0 0 1
 pinlabel=\_Reset
 T 205 245 5 10 1 1 0 6 1
 pinnumber=1
@@ -17,7 +17,7 @@ P 0 600 300 600 1 0 0
 {
 T 0 600 5 10 0 0 0 0 1
 pintype=in
-T 355 595 5 10 1 1 0 0 1
+T 355 595 9 10 1 1 0 0 1
 pinlabel=a\b
 T 205 645 5 10 1 1 0 6 1
 pinnumber=2
@@ -30,7 +30,7 @@ P 0 1000 300 1000 1 0 0
 {
 T 0 1000 5 10 0 0 0 0 1
 pintype=in
-T 355 995 5 10 1 1 0 0 1
+T 355 995 9 10 1 1 0 0 1
 pinlabel=ab\c\d\
 T 205 1045 5 10 1 1 0 6 1
 pinnumber=3
@@ -55,7 +55,7 @@ P 0 1400 300 1400 1 0 0
 {
 T 0 1400 5 10 0 0 0 0 1
 pintype=in
-T 355 1395 5 10 1 1 0 0 1
+T 355 1395 9 10 1 1 0 0 1
 pinlabel=R/\_W\_
 T 205 1445 5 10 1 1 0 6 1
 pinnumber=4
diff --git a/gsymcheck/tests/urefinside.sym b/gsymcheck/tests/urefinside.sym
index ef521d1..9f08d4c 100644
--- a/gsymcheck/tests/urefinside.sym
+++ b/gsymcheck/tests/urefinside.sym
@@ -55,5 +55,5 @@ pinlabel=A
 T 0 550 5 8 0 0 0 0
 pintype=in
 }
-T 300 900 8 10 1 1 0 0
+T 300 900 9 10 1 1 0 0
 uref=U?
-- 
1.7.11.4


--------------070507050706090104010107
Content-Type: text/x-patch;
 name="0003-gsymcheck-Add-a-test-symbol-for-the-s_check_color-fu.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename*0="0003-gsymcheck-Add-a-test-symbol-for-the-s_check_color-fu.pa";
 filename*1="tch"

From bf3e0b15ec176ee6dc23eb54951a70aa91078b99 Mon Sep 17 00:00:00 2001
From: Andrew Busse <andy.j.busse+git AT googlemail DOT com>
Date: Tue, 28 Aug 2012 20:28:07 +0100
Subject: [PATCH 3/3] gsymcheck: Add a test symbol for the s_check_color
 function

16877d6772 introduces a check for symbol colours. This symbol (derived from
correct.sym) has been modified so that it should fail every check performed by
s_check_color
---
 gsymcheck/tests/incorrect_colours.output | 13 +++++++
 gsymcheck/tests/incorrect_colours.sym    | 64 ++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+)
 create mode 100644 gsymcheck/tests/incorrect_colours.output
 create mode 100644 gsymcheck/tests/incorrect_colours.sym

diff --git a/gsymcheck/tests/incorrect_colours.output b/gsymcheck/tests/incorrect_colours.output
new file mode 100644
index 0000000..75c30ca
--- /dev/null
+++ b/gsymcheck/tests/incorrect_colours.output
@@ -0,0 +1,13 @@
+Warning: Line at (x1=300,y1=800) not using graphic color
+Warning: Arc with center (x1=700,y1=500) not using graphic color
+Warning: Circle with center (x1=1050,y1=500) not using graphic or logic bubble color
+Warning: pinnumber=3 not using attribute color
+Warning: pinlabel=C not using text color
+Warning: Pin 3 at (x1=1100,y1=500) not using pin color
+Warning: refdes=U? not using detached attribute color
+Warning: Circle with center (x1=550,y1=500) not using graphic or logic bubble color
+Warning: Text "some
+text" at (x1=800,y1=900) not using text color
+Warning: Box at (x1=600,y1=1500) not using graphic color
+10 warnings found 
+No errors found
diff --git a/gsymcheck/tests/incorrect_colours.sym b/gsymcheck/tests/incorrect_colours.sym
new file mode 100644
index 0000000..3eda16a
--- /dev/null
+++ b/gsymcheck/tests/incorrect_colours.sym
@@ -0,0 +1,64 @@
+v 20110115 2
+L 300 200 300 800 3 0 0 0 -1 -1
+T 300 0 9 8 1 0 0 0 1
+7400
+L 300 800 700 800 9 0 0 0 -1 -1
+T 500 900 5 10 0 0 0 0 1
+device=7400
+T 1200 1100 5 10 0 0 0 0 1
+footprint=unspecified
+T 500 1100 5 10 0 0 0 0 1
+slot=1
+T 500 1300 5 10 0 0 0 0 1
+numslots=4
+T 500 1500 5 10 0 0 0 0 1
+slotdef=1:1,2,3
+T 500 1700 5 10 0 0 0 0 1
+slotdef=2:4,5,6
+T 500 1900 5 10 0 0 0 0 1
+slotdef=3:9,10,8
+T 500 2100 5 10 0 0 0 0 1
+slotdef=4:12,13,11
+L 300 200 700 200 3 0 0 0 -1 -1
+A 700 500 300 270 180 5 0 0 0 -1 -1
+V 1050 500 50 8 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+P 1100 500 1300 500 6 0 1
+{
+T 1085 350 5 8 0 0 0 0 1
+pinseq=3
+T 1085 550 1 8 1 1 0 0 1
+pinnumber=3
+T 1085 350 1 8 1 1 0 0 1
+pinlabel=C
+T 1085 350 5 8 0 0 0 0 1
+pintype=out
+}
+P 300 300 0 300 1 0 1
+{
+T 0 150 5 8 0 0 0 0 1
+pinseq=2
+T 100 350 5 8 1 1 0 0 1
+pinnumber=2
+T 0 150 5 8 0 0 0 0 1
+pinlabel=B
+T 0 150 5 8 0 0 0 0 1
+pintype=in
+}
+P 300 700 0 700 1 0 1
+{
+T 0 550 5 8 0 0 0 0 1
+pinseq=1
+T 100 750 5 8 1 1 0 0 1
+pinnumber=1
+T 0 550 5 8 0 0 0 0 1
+pinlabel=A
+T 0 550 5 8 0 0 0 0 1
+pintype=in
+}
+T 300 900 1 10 1 1 0 0 1
+refdes=U?
+V 550 500 100 8 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 800 900 6 10 1 0 0 0 2
+some
+text
+B 600 1200 100 300 2 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
-- 
1.7.11.4


--------------070507050706090104010107--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019