From 045aaf47ee0e6a9b2fd6e443dd3e9115da20edba Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Tue, 27 Jun 2017 20:01:16 -0300 Subject: [PATCH] template: change the default dot file Make it look like the RIP(ng) dot files with authentic shapes and colors for routers and switches. --- tests/topotests/GUIDELINES.md | 16 +++++++--- .../topotests/example-test/test_template.dot | 30 +++++++++++++++--- .../topotests/example-test/test_template.jpg | Bin 11677 -> 15470 bytes 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/tests/topotests/GUIDELINES.md b/tests/topotests/GUIDELINES.md index 249837a06..5f745ae7c 100644 --- a/tests/topotests/GUIDELINES.md +++ b/tests/topotests/GUIDELINES.md @@ -123,22 +123,30 @@ graph template { # Routers r1 [ - shape=octagon, + shape=doubleoctagon, label="r1", + fillcolor="#f08080", + style=filled, ]; r2 [ - shape=octagon + shape=doubleoctagon, label="r2", + fillcolor="#f08080", + style=filled, ]; # Switches s1 [ - shape=box, + shape=oval, label="s1\n192.168.0.0/24", + fillcolor="#d0e0d0", + style=filled, ]; s2 [ - shape=box, + shape=oval, label="s2\n192.168.1.0/24", + fillcolor="#d0e0d0", + style=filled, ]; # Connections diff --git a/tests/topotests/example-test/test_template.dot b/tests/topotests/example-test/test_template.dot index 26def6959..b5e12020c 100644 --- a/tests/topotests/example-test/test_template.dot +++ b/tests/topotests/example-test/test_template.dot @@ -1,24 +1,46 @@ +## Color coding: +######################### +## Main FRR: #f08080 red +## Switches: #d0e0d0 gray +## RIP: #19e3d9 Cyan +## RIPng: #fcb314 dark yellow +## OSPFv2: #32b835 Green +## OSPFv3: #19e3d9 Cyan +## ISIS IPv4 #fcb314 dark yellow +## ISIS IPv6 #9a81ec purple +## BGP IPv4 #eee3d3 beige +## BGP IPv6 #fdff00 yellow +##### Colors (see http://www.color-hex.com/) + graph template { label="template"; # Routers r1 [ - shape=octagon, + shape=doubleoctagon, label="r1", + fillcolor="#f08080", + style=filled, ]; r2 [ - shape=octagon + shape=doubleoctagon label="r2", + fillcolor="#f08080", + style=filled, ]; # Switches s1 [ - shape=box, + shape=oval, label="s1\n192.168.0.0/24", + fillcolor="#d0e0d0", + style=filled, ]; s2 [ - shape=box, + shape=oval, label="s2\n192.168.1.0/24", + fillcolor="#d0e0d0", + style=filled, ]; # Connections diff --git a/tests/topotests/example-test/test_template.jpg b/tests/topotests/example-test/test_template.jpg index d8d77993942f0b9dfd5d5bd358820dcdf84e312b..b01ef73f5a700ca3d19470c78c885dccc579441a 100644 GIT binary patch literal 15470 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 literal 11677 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 -- 2.39.5