aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/presentation/generator_alerts.py
AgeCommit message (Expand)AuthorFilesLines
2022-04-13Trending: Add 3n-alt - fixesTibor Frank1-1/+1
2022-02-01trending: icx addedViliam Luc1-1/+1
2022-01-18trending: new view in regressions and progressionsViliam Luc1-5/+5
2022-01-17trending: shorten error messagesViliam Luc1-1/+33
2021-12-17trending: hotfix failing trending emailsViliam Luc1-0/+24
2021-08-11report: indexed error message added to report emailsViliam Luc1-42/+87
2021-07-22Trending: Add graph with statisticsTibor Frank1-8/+15
2021-05-03PAL: Refactor the processing of spec and downloadTibor Frank1-2/+1
2021-01-21Trending: Fix bugs in 2n-tx2Tibor Frank1-1/+1
2020-11-26Trending: Fix build number in error message.Tibor Frank1-6/+1
2020-11-23Trendig: Fix alerting for 2n-zn2Tibor Frank1-1/+3
2020-08-28Trending: Add DPDK version to alertsTibor Frank1-5/+8
2020-08-28Trending: Add identification of DUT to alerting emailTibor Frank1-1/+1
2020-05-19Trending: CSIT-1717: Add links from dashboard to graphsTibor Frank1-9/+20
2019-12-09Trending: Fix AlertsTibor Frank1-1/+1
2019-12-03Python3: PALTibor Frank1-188/+205
2019-11-28Python3: resources and librariesJan Gelety1-1/+1
2019-11-04Trending: Fix alertsTibor Frank1-1/+1
2019-10-11Trending: Generate email body for regressions and progressionsTibor Frank1-7/+37
2019-10-07Trending: Send alerts when regression occursTibor Frank1-1/+14
2019-10-03Trending: Report also nr of passed tests in emailTibor Frank1-8/+16
2019-04-15Alerts: Change the error messageTibor Frank1-6/+16
2019-04-10Trending: Reduce input dataTibor Frank1-36/+8
2019-04-04Trending: AlertsTibor Frank1-62/+164
2019-01-02Trending: Align the content of old and new dirsTibor Frank1-2/+8
2018-09-19CSIT-1288: Prepare data to be sent by JenkinsTibor Frank1-4/+5
2018-09-18CSIT-1288: Prepare data to be sent by JenkinsTibor Frank1-0/+10
2018-09-17CSIT-1131: AlertingTibor Frank1-0/+267
class="p">) /* stupid warning be gone */ clib_memset (objects, ~0, vec_bytes (objects)); vec_resize (handles, vec_len (objects)); objects_used = 0; if (fixed_size) { uword max_len = 1024 * 1024; void *memory = clib_mem_alloc (max_len * sizeof (h[0])); h = heap_create_from_memory (memory, max_len, sizeof (h[0])); } for (i = 0; i < n; i++) { while (1) { j = random_u32 (&seed) % vec_len (objects); if (objects[j] != ~0 || i + objects_used < n) break; } if (objects[j] != ~0) { heap_dealloc (h, handles[j]); objects_used--; objects[j] = ~0; } else { u32 *data; uword size; size = 1 + (random_u32 (&seed) % 100); objects[j] = heap_alloc_aligned (h, size, align, handles[j]); objects_used++; if (align) ASSERT (0 == (objects[j] & (align - 1))); ASSERT (objects[j] < vec_len (h)); ASSERT (size <= heap_len (h, handles[j])); /* Set newly allocated object with test data. */ if (check_mask & 2) { data = h + objects[j]; for (k = 0; k < size; k++) data[k] = objects[j] + k; } } if (check_mask & 1) heap_validate (h); if (check_mask & 4) { /* Duplicate heap at each iteration. */ u32 *h1 = heap_dup (h); heap_free (h); h = h1; } /* Verify that all used objects have correct test data. */ if (check_mask & 2) { for (j = 0; j < vec_len (objects); j++) if (objects[j] != ~0) { u32 *data = h + objects[j]; for (k = 0; k < heap_len (h, handles[j]); k++) ASSERT (data[k] == objects[j] + k); } } } if (verbose) fformat (stderr, "%U\n", format_heap, h, 1); { u32 *h1 = heap_dup (h); if (verbose) fformat (stderr, "%U\n", format_heap, h1, 1); heap_free (h1); } heap_free (h); if (verbose) fformat (stderr, "%U\n", format_heap, h, 1); // ASSERT (objects_used == 0); vec_free (objects); vec_free (handles); if (fixed_size) vec_free_h (h, sizeof (heap_header_t)); if (verbose) fformat (stderr, "%U\n", format_clib_mem_usage, /* verbose */ 0); return 0; } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */