Changeset da0fef6 in mainline for uspace/app/bithenge/test.c
- Timestamp:
- 2012-06-23T18:24:21Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 03b2b2c
- Parents:
- d5070ef
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bithenge/test.c
rd5070ef rda0fef6 35 35 */ 36 36 37 #include < loc.h>37 #include <errno.h> 38 38 #include <stdio.h> 39 #include <stdlib.h> 39 40 #include <sys/types.h> 40 41 #include "blob.h" 41 #include "block.h" 42 #include "file.h" 42 #include "source.h" 43 43 #include "print.h" 44 44 #include "tree.h" 45 45 46 static void47 print_data(const char *data, size_t len)48 {49 while (len--)50 printf("%02x ", (uint8_t)(*data++));51 printf("\n");52 }53 54 static void55 print_blob(bithenge_node_t *node)56 {57 bithenge_blob_t *blob = bithenge_node_as_blob(node);58 aoff64_t size;59 bithenge_blob_size(blob, &size);60 printf("Size: %d; ", (int)size);61 char buffer[64];62 size = sizeof(buffer);63 bithenge_blob_read(blob, 0, buffer, &size);64 print_data(buffer, size);65 }66 67 46 int main(int argc, char *argv[]) 68 47 { 69 bithenge_node_t *node; 70 71 service_id_t service_id; 72 loc_service_get_id("bd/initrd", &service_id, 0); 73 bithenge_new_block_blob(&node, service_id); 74 printf("Data from block:bd/initrd: "); 75 print_blob(node); 76 bithenge_node_destroy(node); 77 78 const char data[] = "'Twas brillig, and the slithy toves"; 79 bithenge_new_blob_from_data(&node, data, sizeof(data)); 80 printf("Data from memory (from_data): "); 81 print_blob(node); 82 bithenge_node_destroy(node); 83 84 bithenge_new_blob_from_buffer(&node, data, sizeof(data), false); 85 printf("Data from memory (from_buffer): "); 86 print_blob(node); 87 bithenge_node_destroy(node); 88 89 bithenge_new_file_blob(&node, "/textdemo"); 90 printf("Data from file:/textdemo: "); 91 print_blob(node); 92 bithenge_node_destroy(node); 93 94 bithenge_new_file_blob_from_fd(&node, 0); 95 printf("Data from fd:0: "); 96 print_blob(node); 97 bithenge_node_destroy(node); 98 99 // {True: {}, -1351: "\"false\"", "true": False, 0: b"..."} 100 bithenge_node_t *nodes[8]; 101 bithenge_new_boolean_node(&nodes[0], true); 102 bithenge_new_simple_internal_node(&nodes[1], NULL, 0, false); 103 bithenge_new_integer_node(&nodes[2], -1351); 104 bithenge_new_string_node(&nodes[3], "\"false\"", false); 105 bithenge_new_string_node(&nodes[4], "true", false); 106 bithenge_new_boolean_node(&nodes[5], false); 107 bithenge_new_integer_node(&nodes[6], 0); 108 bithenge_new_blob_from_data(&nodes[7], data, sizeof(data)); 109 bithenge_new_simple_internal_node(&node, nodes, 4, false); 110 bithenge_print_node(BITHENGE_PRINT_PYTHON, node); 111 printf("\n"); 112 bithenge_print_node(BITHENGE_PRINT_JSON, node); 113 printf("\n"); 114 bithenge_node_destroy(node); 48 if (argc < 2) { 49 // {True: {}, -1351: "\"false\"", "true": False, 0: b"..."} 50 const char data[] = "'Twas brillig, and the slithy toves"; 51 bithenge_node_t *node; 52 bithenge_node_t *subnodes[8]; 53 bithenge_new_boolean_node(&subnodes[0], true); 54 bithenge_new_simple_internal_node(&subnodes[1], NULL, 0, false); 55 bithenge_new_integer_node(&subnodes[2], -1351); 56 bithenge_new_string_node(&subnodes[3], "\"false\"", false); 57 bithenge_new_string_node(&subnodes[4], "true", false); 58 bithenge_new_boolean_node(&subnodes[5], false); 59 bithenge_new_integer_node(&subnodes[6], 0); 60 bithenge_new_blob_from_data(&subnodes[7], data, sizeof(data)); 61 bithenge_new_simple_internal_node(&node, subnodes, 4, false); 62 bithenge_print_node(BITHENGE_PRINT_PYTHON, node); 63 printf("\n"); 64 bithenge_print_node(BITHENGE_PRINT_JSON, node); 65 printf("\n"); 66 bithenge_node_destroy(node); 67 } else { 68 bithenge_node_t *node; 69 int rc = bithenge_node_from_source(&node, argv[1]); 70 if (rc != EOK) { 71 printf("Error creating node from source: %s\n", str_error(rc)); 72 return 1; 73 } 74 rc = bithenge_print_node(BITHENGE_PRINT_PYTHON, node); 75 if (rc != EOK) { 76 printf("Error printing node: %s\n", str_error(rc)); 77 return 1; 78 } 79 printf("\n"); 80 bithenge_node_destroy(node); 81 } 115 82 116 83 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.