summaryrefslogtreecommitdiffstats
path: root/build-data
AgeCommit message (Expand)AuthorFilesLines
2016-11-12Add clang to 'make verify'Damjan Marion1-0/+5
2016-11-04VPP-498: Prepare vpp RPM packaging for use by downstream distros.Thomas F Herbert1-1/+5
2016-10-29Initial deb packaging of vpp-python-apiEd Warnicke1-0/+4
2016-10-11VPP-474 Revert "FIX sysctl configuration directory"Miroslav Miklus1-1/+1
2016-10-10HONEYCOMB-228 Snat plugin jvpp supportMarek Gradzki1-1/+2
2016-09-27FIX sysctl configuration directoryMiroslav Miklus1-1/+1
2016-08-29VPP-310 Mapping algorithm compute wrong ea-bitsOle Troan1-0/+3
2016-08-25VPP Python language binding - plugin supportOle Troan1-8/+10
2016-08-16Create python package for jvpp generation.Ed Warnicke1-2/+8
2016-08-12VPP: NXP dpaa2 platform porting to dpdk-16.07Sachin1-7/+7
2016-07-21VPP-123: remove japi (the old Java API)Marek Gradzki1-1/+1
2016-07-13Add plugins debian packagingDamjan Marion2-1/+6
2016-07-08Multiple changes in the plugin build infraDamjan Marion1-3/+1
2016-07-06Retire PLATFORM=virlDamjan Marion1-42/+0
2016-07-01Simple ip4 NAT pluginDave Barach1-0/+4
2016-06-28Fix native build on non x86_64 systemsDamjan Marion2-0/+11
2016-06-27Plugins: Clean up the plugin directory so that each plugin has its ownOle Troan5-10/+10
2016-06-22Fix for build failure due to iOAM plugin header file pathShwetha1-0/+5
2016-06-19Improving cross_ldflags arguments for dpaa2 platformSachin1-1/+2
2016-06-18Enhanced RPM build process to make rpm for any given platformSachin1-1/+2
2016-06-17NXP DPAA2 Poll Mode Driver Support in DPDKSachin1-4/+6
2016-06-156rd: Move to pluginOle Troan1-0/+38
2016-06-10NXP dpaa2 platform initial supportSachin Saxena1-0/+63
2016-06-05VPP-94: Add build-data directory for plugins and Makefile targetPierre Pfister1-47/+0
2016-05-27Fix dpdk march/mtune defaultsDamjan Marion1-1/+1
2016-05-20VPP-79: fix cross-compilation build breakDave Barach1-3/+3
2016-05-19Add support for multiple microarchitectures in single binaryDamjan Marion3-4/+15
2016-05-17dpdk/Makefile - Allow dpdk target to be set according to the platformChristophe Fontaine2-3/+21
2016-04-28VPP-8: Set java-8 for JNIMarek Gradzki1-1/+1
2016-04-20Python-API: Inital commit of Python bindings for the VPP API.Ole Troan4-7/+7
2016-04-20Add TAG=vpp_gcov which compiles vpp to produce .gcda filesDave Barach1-0/+5
2016-04-18Add support for AArch32Christophe Fontaine3-4/+49
2016-04-12Add unit test infrastructure for LISP protocolFilip Tehlar1-0/+4
2016-04-11Add configure option to enable building unit testsDamjan Marion2-1/+7
2016-04-01Add options to link with external DPDK treeDamjan Marion6-3/+37
2016-03-25Use rte_mempool private data for storing vlib_buffer_tDamjan Marion2-4/+0
2016-03-25vpp-api-test and sample-plugin should depend on dpdk conditionallyDamjan Marion2-12/+13
2016-02-27Invert matching logic for *_uses_dpdk in build-data/packages/*.mkDamjan Marion3-3/+3
2016-02-26Update PowerPC (qppc) platform to build with Ubuntu cross-toolsDamjan Marion6-109/+22
2016-02-26Add support for native vpp_lite (non-dpdk) platformDamjan Marion6-10/+60
2016-02-12Performance tools, initial check-inDave Barach2-0/+10
2016-02-10Compile with -Werror, so Jenkins will catch warningsDave Barach1-4/+4
2016-02-03Need to include symbolic links in the lib package: libXXX.so, libXXX.so.0Dave Barach1-2/+4
2016-02-02Enable ganglia module integration buildDave Barach2-2/+2
2016-02-01Add a vpp-dpdk-dev package, enable plugins to use dpdk APIs directlyDave Barach1-0/+4
2016-01-29Rationalize metric names.Dave Barach1-2/+2
2016-01-28vpp metrics upload via gmond pluginDave Barach1-0/+9
2016-01-22aarch64 CPU arch / ThunderX platform initial supportDave Barach13-34/+223
2016-01-21PowerPC64-be arch support. Qemu ("qppc") platform support.Dave Barach6-0/+123
2015-12-16Move vppctl to vpp-api-testDamjan Marion2-12/+1
ss="o">= 2 * ((n_keys - 1) / 4); n = rb_tree_search_subtree (rt, rb_node (rt, rt->root), search_key); RBTREE_TEST (rb_node_is_tnil (rt, n), "search result for %u should be tnil", search_key); search_key += 1; n = rb_tree_search_subtree (rt, rb_node (rt, rt->root), search_key); RBTREE_TEST (n->key == search_key, "search result should be %u", search_key); aux = rb_tree_successor (rt, n); RBTREE_TEST (aux->key == search_key + 2, "successor should be %u is %u", search_key + 2, aux->key); aux = rb_tree_predecessor (rt, n); RBTREE_TEST (aux->key == search_key - 2, "predecessor should be %u is %u", search_key - 2, aux->key); /* * Re-add even keys */ for (i = 0; i < n_keys; i += 2) rb_tree_add (rt, i); RBTREE_TEST (rb_tree_n_nodes (rt) == n_keys + 1, "number nodes %u is %u", n_keys + 1, rb_tree_n_nodes (rt)); n = rb_tree_max_subtree (rt, rb_node (rt, rt->root)); RBTREE_TEST (n->key == n_keys - 1, "max should be %u", n_keys - 1); n = rb_tree_min_subtree (rt, rb_node (rt, rt->root)); RBTREE_TEST (n->key == 0, "min should be %u", 0); search_key = 2 * ((n_keys - 1) / 4); n = rb_tree_search_subtree (rt, rb_node (rt, rt->root), search_key); RBTREE_TEST (n->key == search_key, "search result should be %u", search_key); search_key += 1; n = rb_tree_search_subtree (rt, rb_node (rt, rt->root), search_key); RBTREE_TEST (n->key == search_key, "search result should be %u", search_key); aux = rb_tree_successor (rt, n); RBTREE_TEST (aux->key == search_key + 1, "successor should be %u is %u", search_key + 1, aux->key); aux = rb_tree_predecessor (rt, n); RBTREE_TEST (aux->key == search_key - 1, "predecessor should be %u is %u", search_key - 1, aux->key); /* * Delete all keys */ for (i = 0; i < n_keys; i++) { rb_tree_del (rt, i); if (rt->nodes[RBTREE_TNIL_INDEX].color != RBTREE_BLACK) RBTREE_TEST (0, "tnil should be black"); } RBTREE_TEST (rb_tree_n_nodes (rt) == 1, "number nodes %u is %u", 1, rb_tree_n_nodes (rt)); n = rb_tree_min_subtree (rt, rb_node (rt, rt->root)); RBTREE_TEST (rb_node_is_tnil (rt, n), "min should be tnil"); n = rb_tree_max_subtree (rt, rb_node (rt, rt->root)); RBTREE_TEST (rb_node_is_tnil (rt, n), "max should be tnil"); search_key = 2 * ((n_keys - 1) / 4); n = rb_tree_search_subtree (rt, rb_node (rt, rt->root), search_key); RBTREE_TEST (rb_node_is_tnil (rt, n), "search result should be tnil"); /* * Test successor/predecessor */ u8 test_vals[] = { 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20 }; for (i = 0; i < sizeof (test_vals) / sizeof (u8); i++) rb_tree_add (rt, test_vals[i]); search_key = 13; n = rb_tree_search_subtree (rt, rb_node (rt, rt->root), search_key); RBTREE_TEST (n->key == search_key, "search result should be %u", search_key); aux = rb_tree_successor (rt, n); RBTREE_TEST (aux->key == 15, "successor should be %u is %u", 15, aux->key); aux = rb_tree_predecessor (rt, n); RBTREE_TEST (aux->key == 9, "predecessor should be %u is %u", 9, aux->key); n = aux; aux = rb_tree_predecessor (rt, n); RBTREE_TEST (aux->key == 7, "predecessor should be %u is %u", 7, aux->key); /* * Cleanup */ rb_tree_free_nodes (rt); RBTREE_TEST (rb_tree_n_nodes (rt) == 0, "number nodes %u is %u", 0, rb_tree_n_nodes (rt)); return 0; } static clib_error_t * rbtree_test (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd_arg) { int res = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "basic")) { res = rbtree_test_basic (vm, input); } else if (unformat (input, "all")) { if ((res = rbtree_test_basic (vm, input))) goto done; } else break; } done: if (res) return clib_error_return (0, "rbtree unit test failed"); return 0; } /* *INDENT-OFF* */ VLIB_CLI_COMMAND (rbtree_test_command, static) = { .path = "test rbtree", .short_help = "internal rbtree unit tests", .function = rbtree_test, }; /* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */