main.c 1.7 KB
Newer Older
H
Helin Wang 已提交
1
#include <stdio.h>
2

3
#include "libpaddle_pserver_cclient.h"
4

H
Helin Wang 已提交
5
void fail() {
H
Helin Wang 已提交
6 7
  // TODO(helin): fix: gtest using cmake is not working, using this
  // hacky way for now.
H
Helin Wang 已提交
8 9
  printf("test failed.\n");
  exit(-1);
H
Helin Wang 已提交
10 11
}

12
int main() {
H
Helin Wang 已提交
13
  char addr[] = "localhost:3000";
H
Helin Wang 已提交
14
  client c = paddle_new_pserver_client(addr, 1);
H
Helin Wang 已提交
15
retry:
H
Helin Wang 已提交
16
  if (paddle_begin_init_params(c)) {
17

H
Helin Wang 已提交
18 19 20
    paddle_parameter param;
    char name_a[] = "param_a";
    char name_b[] = "param_b";
21
    unsigned char content[] = {0x00, 0x00, 0x00};
H
Helin Wang 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35
    param.element_type = PADDLE_ELEMENT_TYPE_FLOAT32;
    param.name = name_a;
    param.content = content;
    param.content_len = 3;
    if (paddle_init_param(c, param, NULL, 0) != 0) {
      goto retry;
    }
    param.element_type = PADDLE_ELEMENT_TYPE_INT32;
    param.name = name_b;
    param.content = content;
    param.content_len = 3;
    if (paddle_init_param(c, param, NULL, 0) != 0) {
      goto retry;
    }
36

H
Helin Wang 已提交
37 38 39 40
    if (paddle_finish_init_params(c) != 0) {
      goto retry;
    }
  } else {
H
Helin Wang 已提交
41
    fail();
H
Helin Wang 已提交
42 43
  }

44
  unsigned char content[] = {0x00, 0x11, 0x22};
H
Helin Wang 已提交
45
  paddle_gradient grads[2] = {
46 47
      {"param_a", PADDLE_ELEMENT_TYPE_FLOAT32, content, 3},
      {"param_b", PADDLE_ELEMENT_TYPE_INT32, content, 3}};
H
Helin Wang 已提交
48

49
  if (paddle_send_grads(c, grads, 2) != 0) {
H
Helin Wang 已提交
50
    fail();
H
Helin Wang 已提交
51 52
  }

H
Helin Wang 已提交
53
  paddle_parameter* params[2] = {NULL, NULL};
H
Helin Wang 已提交
54
  char* names[] = {"param_a", "param_b"};
55
  if (paddle_get_params(c, names, params, 2) != 0) {
H
Helin Wang 已提交
56
    fail();
H
Helin Wang 已提交
57 58
  }

H
Helin Wang 已提交
59
  // get parameters again by reusing the allocated parameter buffers.
60
  if (paddle_get_params(c, names, params, 2) != 0) {
H
Helin Wang 已提交
61
    fail();
H
Helin Wang 已提交
62 63
  }

H
Helin Wang 已提交
64 65
  paddle_release_param(params[0]);
  paddle_release_param(params[1]);
H
Helin Wang 已提交
66

67
  if (paddle_save_model(c, "/tmp/") != 0) {
H
Helin Wang 已提交
68
    fail();
H
Helin Wang 已提交
69 70
  }

71
  printf("test success!\n");
72 73
  return 0;
}