Browse Source

Standalone API test, coverage for #1 and #3

jamesbowman 9 years ago
parent
commit
2a8500ed18
2 changed files with 232 additions and 0 deletions
  1. 103 0
      apitest.ino
  2. 129 0
      converted-assets/apitest_assets.h

+ 103 - 0
apitest.ino

@@ -0,0 +1,103 @@
+#include <EEPROM.h>
+#include <SPI.h>
+#include <GD2.h>
+
+#include "apitest_assets.h"
+
+static int y = 0;
+
+static int null()
+{
+  return 0;
+}
+
+static int inflate()
+{
+  GD.cmd_inflate(0);
+  GD.copy(compressed, sizeof(compressed));
+  GD.finish();
+  return 0;
+}
+
+static int setfont()
+{
+  uint32_t base = 76000;
+  GD.cmd_inflate(base);
+  GD.copy(compressed, sizeof(compressed));
+
+  GD.BitmapHandle(12);
+  GD.BitmapSource(base + 148);
+  GD.BitmapLayout(L4, 8, 17);
+  GD.BitmapSize(NEAREST, BORDER, BORDER, 16, 17);
+  GD.cmd_setfont(12, base);
+
+  GD.cmd_text(200, y, 12, 0, "abcdefghijklmnopqrstuvwxyz");
+  GD.finish();
+  return 0;
+}
+
+/* atan2(): check for hangs in atan2() */
+static int atan2()
+{
+  int16_t tricky[6] = {-32768, -32767, -1, 0, 1, 32767};
+  byte i, j;
+  for (i = 0; i < 6; i++)
+    for (j = 0; j < 6; j++)
+      GD.atan2(tricky[i], tricky[j]);
+  return 0;
+}
+
+static int randrange()
+{
+  const size_t N = 21;
+  uint16_t slots[N];
+
+  memset(slots, 0, sizeof(slots));
+  for (int i = 0; i < N * 100; i++)
+    slots[GD.random(N)]++;
+  GD.Begin(POINTS);
+
+  uint32_t total = 0;
+  for (int i = 0; i < N; i++) {
+    GD.PointSize(slots[i]);
+    GD.Vertex2f(16 * 200 + i * (16 * 280UL) / N, 16 * (y + 7));
+
+    if (slots[i] < 20)
+      return 1;
+    if (slots[i] > 180)
+      return 1;
+    total += slots[i];
+  }
+
+  return (total == (N * 100)) ? 0 : 1;
+}
+
+#define DOTEST(NAME) \
+  do { \
+  GD.cmd_text(110, y, 20, OPT_RIGHTX, #NAME); \
+  if (NAME()) \
+    GD.cmd_text(125, y, 21, 0, "FAIL"); \
+  else \
+    GD.cmd_text(125, y, 20, 0, "pass"); \
+  y += 14; \
+  } while (0)
+
+void setup()
+{
+  Serial.begin(115200); // JCB
+  GD.begin(0);
+  GD.cmd_memset(0, 0x40000UL, 0);
+  GD.Clear();
+
+  DOTEST(null);
+  DOTEST(inflate);
+  DOTEST(setfont);
+  DOTEST(atan2);
+  DOTEST(randrange);
+
+  GD.swap();
+}
+
+void loop()
+{
+}

+ 129 - 0
converted-assets/apitest_assets.h

@@ -0,0 +1,129 @@
+static const PROGMEM uint8_t compressed[] = {
+120, 218, 237, 90, 93, 108, 20, 85, 20, 190, 59, 255, 187, 203, 110, 215,
+248, 98, 192, 45, 251, 164, 15, 182, 177, 15, 70, 99, 218, 66, 19, 76,
+20, 164, 97, 13, 79, 32, 198, 250, 96, 132, 34, 184, 15, 134, 16, 19,
+161, 47, 218, 162, 134, 108, 34, 22, 141, 129, 84, 192, 26, 163, 33, 75,
+42, 104, 140, 226, 82, 74, 124, 32, 37, 219, 22, 20, 105, 135, 78, 43,
+1, 4, 74, 65, 49, 24, 227, 18, 119, 231, 124, 119, 195, 44, 75, 139, 59,
+119, 75, 49, 115, 154, 230, 219, 153, 123, 231, 222, 115, 207, 57, 247,
+220, 115, 206, 140, 162, 76, 67, 178, 26, 80, 253, 134, 44, 203, 170,
+42, 229, 254, 116, 205, 254, 203, 145, 36, 169, 57, 242, 27, 186, 145,
+187, 48, 12, 57, 135, 1, 67, 215, 12, 77, 203, 253, 242, 231, 110, 41,
+170, 162, 234, 178, 166, 169, 154, 166, 104, 186, 44, 107, 178, 95, 215,
+114, 191, 85, 37, 215, 43, 55, 144, 42, 171, 10, 147, 24, 99, 70, 238,
+63, 146, 251, 191, 143, 121, 228, 145, 71, 30, 121, 228, 145, 71, 30,
+121, 228, 145, 71, 30, 121, 228, 145, 71, 30, 121, 52, 171, 40, 13, 180,
+238, 16, 51, 206, 199, 229, 164, 32, 62, 50, 24, 216, 178, 156, 215, 51,
+78, 86, 216, 129, 102, 118, 212, 140, 148, 184, 63, 109, 123, 153, 132,
+167, 149, 201, 1, 27, 67, 11, 158, 161, 219, 184, 31, 216, 138, 126, 155,
+247, 161, 255, 171, 236, 230, 14, 209, 112, 131, 141, 250, 228, 25, 186,
+95, 237, 82, 28, 235, 226, 134, 141, 47, 89, 47, 19, 142, 165, 108, 124,
+97, 77, 29, 117, 120, 114, 85, 220, 198, 125, 139, 108, 205, 169, 137,
+167, 108, 52, 216, 186, 22, 145, 106, 105, 48, 105, 154, 33, 70, 195,
+246, 225, 254, 194, 95, 9, 63, 227, 234, 11, 92, 110, 34, 123, 125, 219,
+190, 238, 144, 198, 108, 244, 155, 77, 98, 236, 116, 234, 253, 48, 99,
+116, 24, 251, 143, 180, 193, 252, 36, 29, 54, 39, 226, 48, 163, 2, 134,
+34, 206, 126, 74, 202, 57, 78, 185, 36, 115, 255, 209, 3, 92, 3, 172,
+97, 165, 25, 137, 2, 87, 0, 191, 42, 26, 71, 20, 237, 62, 4, 187, 233,
+162, 117, 143, 78, 144, 4, 150, 210, 53, 219, 245, 201, 204, 232, 169,
+104, 253, 129, 209, 83, 165, 229, 50, 203, 72, 134, 152, 88, 27, 48, 82,
+153, 121, 20, 243, 228, 61, 113, 76, 186, 63, 231, 248, 134, 248, 192,
+233, 56, 180, 54, 231, 6, 125, 22, 205, 123, 8, 124, 232, 102, 192, 153,
+134, 68, 45, 72, 51, 19, 180, 63, 34, 125, 152, 111, 9, 216, 10, 193,
+191, 133, 129, 33, 71, 123, 3, 60, 175, 110, 138, 113, 239, 124, 129,
+234, 157, 6, 32, 183, 67, 151, 212, 60, 108, 43, 64, 26, 215, 200, 51,
+198, 248, 192, 220, 51, 53, 198, 72, 17, 56, 119, 223, 33, 144, 184, 26,
+179, 230, 128, 16, 62, 230, 153, 116, 174, 62, 198, 71, 230, 243, 143,
+226, 188, 213, 187, 74, 10, 160, 79, 39, 11, 173, 185, 32, 200, 64, 150,
+1, 143, 65, 63, 59, 113, 192, 32, 160, 88, 1, 199, 53, 64, 168, 78, 140,
+102, 42, 226, 216, 182, 194, 206, 118, 23, 197, 171, 151, 126, 33, 124,
+206, 72, 222, 44, 7, 31, 244, 230, 27, 128, 60, 154, 79, 9, 146, 199,
+235, 176, 87, 136, 223, 136, 33, 190, 130, 188, 59, 252, 180, 145, 51,
+48, 104, 11, 122, 233, 214, 136, 143, 121, 195, 130, 252, 165, 249, 187,
+211, 46, 252, 216, 135, 97, 56, 144, 231, 209, 115, 63, 248, 133, 153,
+64, 28, 44, 36, 38, 12, 98, 13, 35, 100, 143, 131, 176, 211, 195, 224,
+103, 225, 36, 77, 240, 57, 28, 157, 85, 240, 39, 132, 91, 216, 135, 196,
+246, 68, 155, 152, 253, 114, 145, 214, 189, 95, 237, 42, 146, 59, 241,
+53, 119, 20, 243, 84, 67, 62, 29, 120, 112, 192, 233, 127, 43, 68, 82,
+151, 216, 126, 21, 231, 35, 37, 250, 220, 63, 142, 192, 7, 3, 174, 133,
+245, 66, 252, 18, 247, 154, 171, 152, 179, 31, 127, 174, 194, 100, 152,
+102, 100, 170, 107, 225, 122, 24, 47, 90, 175, 159, 187, 175, 35, 206,
+117, 195, 157, 240, 126, 133, 231, 220, 206, 127, 172, 151, 220, 120,
+19, 5, 26, 90, 193, 79, 215, 67, 49, 131, 240, 243, 49, 167, 27, 151,
+128, 122, 92, 12, 35, 58, 2, 191, 111, 152, 158, 55, 1, 125, 155, 217,
+146, 79, 29, 66, 209, 216, 190, 252, 148, 225, 80, 221, 145, 198, 252,
+245, 253, 253, 173, 67, 249, 118, 110, 22, 63, 178, 135, 161, 168, 62,
+49, 140, 116, 3, 225, 159, 213, 247, 72, 255, 193, 39, 200, 175, 70,
+125, 228, 215, 214, 155, 87, 145, 231, 180, 195, 173, 218, 137, 118,
+206, 187, 135, 99, 34, 216, 200, 142, 208, 48, 150, 148, 134, 31, 75,
+225, 154, 48, 59, 26, 199, 253, 221, 192, 167, 129, 20, 41, 102, 77, 49,
+142, 76, 233, 167, 140, 176, 54, 86, 91, 42, 92, 189, 37, 236, 250, 148,
+241, 240, 168, 49, 66, 7, 212, 144, 16, 62, 178, 200, 215, 45, 105, 16,
+243, 173, 40, 58, 79, 194, 69, 215, 20, 159, 90, 190, 195, 142, 231, 221,
+243, 113, 98, 202, 176, 51, 107, 14, 78, 211, 126, 98, 86, 240, 33, 40,
+76, 102, 114, 255, 113, 216, 7, 237, 195, 78, 231, 113, 202, 44, 131, 12,
+49, 195, 180, 4, 217, 79, 160, 137, 250, 55, 194, 190, 122, 197, 148,
+233, 10, 250, 47, 141, 89, 115, 244, 142, 250, 185, 231, 67, 12, 206,
+16, 39, 18, 226, 99, 37, 137, 56, 117, 16, 7, 77, 227, 5, 81, 92, 144,
+31, 40, 236, 219, 90, 242, 107, 99, 40, 52, 93, 130, 161, 92, 91, 197,
+237, 37, 137, 231, 142, 0, 171, 235, 102, 131, 94, 110, 92, 62, 43,
+68, 30, 215, 25, 219, 156, 199, 9, 100, 82, 23, 235, 164, 131, 121, 60,
+219, 102, 172, 183, 229, 146, 9, 217, 25, 149, 213, 83, 111, 27, 164,
+181, 166, 147, 176, 122, 140, 48, 152, 18, 98, 168, 127, 192, 222, 255,
+1, 254, 22, 39, 28, 203, 96, 63, 172, 6, 18, 59, 204, 82, 246, 66, 30,
+63, 0, 31, 21, 34, 143, 165, 148, 55, 72, 131, 100, 31, 254, 56, 249,
+245, 16, 74, 27, 97, 68, 28, 252, 58, 231, 60, 86, 222, 220, 63, 247,
+188, 32, 191, 78, 249, 62, 179, 212, 148, 35, 111, 176, 144, 255, 103,
+79, 69, 102, 100, 223, 54, 252, 87, 121, 60, 0, 121, 24, 127, 146, 60,
+204, 181, 149, 149, 7, 174, 179, 127, 163, 29, 14, 223, 66, 33, 215, 66,
+100, 102, 49, 49, 245, 15, 238, 135, 134, 244, 132, 67, 206, 239, 194,
+43, 168, 71, 35, 142, 58, 8, 207, 247, 199, 85, 138, 155, 154, 47, 9,
+9, 199, 2, 102, 246, 228, 172, 112, 236, 211, 157, 95, 197, 216, 139,
+66, 99, 43, 59, 64, 113, 242, 105, 33, 113, 97, 46, 206, 173, 65, 220,
+187, 17, 243, 80, 197, 191, 29, 11, 173, 87, 72, 31, 97, 188, 97, 8, 52,
+147, 158, 212, 239, 80, 135, 248, 75, 76, 217, 178, 173, 42, 158, 183,
+60, 165, 171, 177, 45, 31, 240, 73, 233, 87, 210, 171, 237, 245, 191,
+159, 126, 203, 142, 59, 210, 187, 236, 0, 185, 39, 179, 193, 62, 224,
+58, 186, 22, 219, 184, 190, 37, 100, 27, 200, 194, 186, 144, 136, 87,
+150, 74, 154, 109, 167, 248, 23, 245, 143, 40, 133, 57, 76, 255, 2, 61,
+174, 193, 76, 143, 18, 70, 131, 212, 222, 77, 253, 101, 254, 188, 91,
+62, 82, 120, 131, 178, 7, 242, 127, 16, 111, 128, 244, 175, 209, 227,
+202, 140, 216, 169, 108, 154, 19, 248, 137, 55, 58, 168, 199, 20, 10,
+219, 157, 206, 178, 213, 28, 236, 231, 141, 72, 47, 111, 152, 238, 2,
+246, 137, 184, 216, 120, 108, 162, 188, 60, 151, 87, 225, 140, 4, 214,
+149, 113, 150, 227, 10, 245, 253, 80, 172, 176, 177, 156, 19, 243, 128,
+186, 214, 149, 62, 212, 211, 204, 153, 191, 187, 196, 194, 120, 229, 82,
+20, 235, 236, 235, 102, 255, 39, 210, 76, 115, 164, 228, 190, 132, 29,
+168, 120, 13, 201, 22, 223, 27, 235, 145, 250, 193, 112, 132, 12, 213,
+247, 61, 125, 112, 16, 108, 121, 13, 230, 80, 69, 219, 55, 254, 34, 245,
+55, 55, 85, 38, 123, 57, 55, 66, 18, 188, 142, 194, 245, 85, 230, 172,
+171, 95, 69, 254, 194, 219, 121, 127, 209, 180, 147, 210, 85, 61, 249,
+184, 195, 155, 21, 191, 87, 231, 237, 108, 71, 175, 160, 137, 157, 27,
+208, 215, 79, 114, 246, 39, 54, 211, 188, 108, 62, 90, 195, 224, 99,
+190, 163, 157, 247, 23, 78, 65, 212, 201, 218, 17, 247, 101, 160, 151,
+9, 51, 227, 168, 19, 181, 203, 228, 64, 131, 35, 66, 226, 49, 246, 102,
+194, 97, 31, 129, 108, 228, 110, 229, 217, 14, 42, 87, 47, 10, 218, 141,
+68, 43, 13, 180, 247, 80, 101, 247, 203, 237, 208, 237, 250, 147, 130,
+242, 110, 183, 148, 18, 156, 255, 195, 142, 55, 197, 93, 250, 49, 43,
+138, 188, 9, 97, 209, 121, 216, 241, 13, 224, 24, 252, 133, 213, 192,
+235, 33, 137, 89, 81, 151, 250, 168, 66, 7, 204, 249, 51, 59, 109, 145,
+94, 91, 176, 200, 142, 4, 175, 84, 209, 148, 86, 120, 106, 20, 77, 119,
+105, 191, 220, 66, 252, 189, 240, 118, 240, 145, 41, 226, 131, 95, 183,
+163, 61, 56, 92, 25, 189, 148, 123, 222, 10, 222, 207, 229, 159, 115,
+197, 129, 171, 225, 46, 205, 59, 247, 83, 161, 126, 7, 121, 220, 149,
+243, 133, 29, 164, 215, 41, 90, 234, 33, 58, 55, 6, 121, 29, 141, 199,
+25, 40, 171, 183, 212, 34, 94, 19, 244, 222, 52, 193, 220, 157, 183,
+59, 42, 36, 143, 233, 246, 167, 229, 163, 132, 183, 91, 39, 172, 253,
+185, 34, 154, 81, 147, 244, 225, 128, 47, 19, 164, 68, 182, 23, 95,
+102, 109, 64, 160, 255, 200, 54, 228, 185, 252, 3, 174, 174, 138, 136,
+67, 111, 121, 195, 254, 84, 79, 78, 126, 169, 181, 228, 111, 164, 191,
+157, 107, 7, 92, 61, 157, 84, 96, 223, 178, 252, 99, 27, 151, 69, 206,
+97, 67, 245, 84, 36, 15, 106, 195, 247, 109, 3, 248, 112, 109, 37, 14,
+228, 42, 28, 160, 173, 105, 71, 187, 150, 172, 153, 109, 246, 65, 184,
+92, 35, 69, 213, 12, 187, 202, 39, 100, 115, 210, 249, 189, 9, 255, 206,
+141, 127, 174, 195, 211, 123, 188, 63, 149, 179, 130, 190, 59, 240, 143,
+151, 118, 135, 252, 195, 193, 37, 192, 3, 192, 250, 162, 246, 112, 81,
+33, 67, 31, 47, 87, 15, 98, 208, 109, 62, 123, 158, 77, 45, 15, 148,
+237, 24, 202, 254, 12, 219, 249, 150, 254, 213, 69, 227, 137, 218, 55,
+67, 148, 30, 73, 193, 148, 144, 241, 254, 5, 47, 246, 252, 178,
+};