File: test_write.cc

package info (click to toggle)
swi-prolog 9.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 82,408 kB
  • sloc: ansic: 387,503; perl: 359,326; cpp: 6,613; lisp: 6,247; java: 5,540; sh: 3,147; javascript: 2,668; python: 1,900; ruby: 1,594; yacc: 845; makefile: 428; xml: 317; sed: 12; sql: 6
file content (82 lines) | stat: -rw-r--r-- 2,858 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Not really a test - mainly to see how negative numbers are
// handled for int32, int64 protobuf fields

#include <iostream>
#include <fstream>
#include <string>
#include "test.pb.h"

void write_wire(const std::string& path, const test::Scalars1 scalars1) {
  std::ofstream file1;
  file1.open(path);
  scalars1.SerializeToOstream(&file1);
  file1.close();
}

void make_scalars1a(test::Scalars1 *scalars1a) {
  scalars1a->set_v_double(     1.5);
  scalars1a->set_v_float(      2.5);
  scalars1a->set_v_int32(      3);
  scalars1a->set_v_int64(      4);
  scalars1a->set_v_uint32(     5);
  scalars1a->set_v_uint64(     6);
  scalars1a->set_v_sint32(     7);
  scalars1a->set_v_sint64(     8);
  scalars1a->set_v_fixed32(    9);
  scalars1a->set_v_fixed64(   10);
  scalars1a->set_v_sfixed32(  11);
  scalars1a->set_v_sfixed64(  12);
  scalars1a->set_v_bool(      false);
  scalars1a->set_v_string(    "écran 網目錦蛇");
  scalars1a->set_v_bytes(     "\xc3\x28");  // See https://stackoverflow.com/questions/1301402/example-invalid-utf8-string
  scalars1a->set_v_enum(      test::MyEnum::E1);
  scalars1a->set_v_utf8_codes("écran 網目錦蛇");
  scalars1a->mutable_v_key_value()->set_key("reticulated python");
  scalars1a->mutable_v_key_value()->set_value("網目錦蛇");
}

void make_scalars1b(test::Scalars1 *scalars1b) {
  scalars1b->set_v_double(     -1.5);
  scalars1b->set_v_float(      -2.5);
  scalars1b->set_v_int32(      -3);
  scalars1b->set_v_int64(      -4);
  scalars1b->set_v_uint32(      5+10000000);
  scalars1b->set_v_uint64(      6+10000000);
  scalars1b->set_v_sint32(     -7);
  scalars1b->set_v_sint64(     -8);
  scalars1b->set_v_fixed32(     9+1000);
  scalars1b->set_v_fixed64(    10+1000);
  scalars1b->set_v_sfixed32(  -11);
  scalars1b->set_v_sfixed64(  -12);
  scalars1b->set_v_bool(      true);
  scalars1b->set_v_string(    "[àmímé níshíkíhéꜜbì] reticulated python");
  scalars1b->set_v_bytes(     "\xf0\x28\x8c\x28");  // See https://stackoverflow.com/questions/1301402/example-invalid-utf8-string
  scalars1b->set_v_enum(      test::MyEnum::AnotherEnum);
  scalars1b->set_v_utf8_codes("[àmímé níshíkíhéꜜbì] reticulated python");
  scalars1b->mutable_v_key_value()->set_key("foo");
  scalars1b->mutable_v_key_value()->set_value("");
}

void make_scalars1c(test::Scalars1 *scalars1c) {
}

void test_write() {
  test::Scalars1 scalars1a;
  make_scalars1a(&scalars1a);
  write_wire("scalars1a_from_cc.wire", scalars1a);

  test::Scalars1 scalars1b;
  make_scalars1b(&scalars1b);
  // std::cout << scalars1b.DebugString() << std::endl;
  write_wire("scalars1b_from_cc.wire", scalars1b);

  test::Scalars1 scalars1c;
  make_scalars1c(&scalars1c);
  write_wire("scalars1c_from_cc.wire", scalars1c);
}

int main(int argc, char* argv[]) {
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  test_write();
  return 0;
}