Skip to content

Commit dbf2541

Browse files
authored
Make outputData a std::string (#116)
* libfaasm: don't use static variables that behave differently in wamr * gh: bump version as we change libfaasm * libfaasm: set output uses strings not byte arrays * funcs: setOutput uses strings not bytes * nits: run clang format * mmap: fix return value
1 parent 6a509fc commit dbf2541

26 files changed

+98
-67
lines changed

.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
SYSROOT_VERSION=0.2.6
2-
SYSROOT_CLI_IMAGE=faasm.azurecr.io/cpp-sysroot:0.2.6
1+
SYSROOT_VERSION=0.2.7
2+
SYSROOT_CLI_IMAGE=faasm.azurecr.io/cpp-sysroot:0.2.7
33
COMPOSE_PROJECT_NAME=cpp-dev

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
if: github.event.pull_request.draft == false
2020
runs-on: ubuntu-latest
2121
container:
22-
image: faasm.azurecr.io/cpp-sysroot:0.2.6
22+
image: faasm.azurecr.io/cpp-sysroot:0.2.7
2323
credentials:
2424
username: ${{ secrets.ACR_SERVICE_PRINCIPAL_ID }}
2525
password: ${{ secrets.ACR_SERVICE_PRINCIPAL_PASSWORD }}

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.2.6
1+
0.2.7

func/demo/chain_output.cpp

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
#include <faasm/compare.h>
21
#include <faasm/faasm.h>
32
#include <stdio.h>
43

4+
#include <string>
5+
56
int otherA()
67
{
7-
uint8_t outputA[5] = { 0, 1, 2, 3, 4 };
8-
faasmSetOutput(outputA, 5);
8+
std::string outputA = "expected A";
9+
faasmSetOutput(outputA.c_str(), outputA.size());
910
return 0;
1011
}
1112

1213
int otherB()
1314
{
14-
uint8_t outputB[3] = { 5, 4, 3 };
15-
faasmSetOutput(outputB, 3);
15+
std::string outputB = "longer expected B";
16+
faasmSetOutput(outputB.c_str(), outputB.size());
1617
return 0;
1718
}
1819

@@ -24,25 +25,29 @@ int main(int argc, char* argv[])
2425
unsigned int callIdA = faasmChain(otherA, nullptr, 0);
2526
unsigned int callIdB = faasmChain(otherB, nullptr, 0);
2627

27-
uint8_t expectedA[5] = { 0, 1, 2, 3, 4 };
28-
uint8_t actualA[5] = { 0, 0, 0, 0, 0 };
28+
std::string expectedA = "expected A";
29+
std::string actualA;
30+
actualA.reserve(expectedA.size());
2931

30-
uint8_t expectedB[3] = { 5, 4, 3 };
31-
uint8_t actualB[3] = { 0, 0, 0 };
32+
std::string expectedB = "longer expected B";
33+
std::string actualB;
34+
actualB.reserve(expectedB.size());
3235

33-
unsigned int resA = faasmAwaitCallOutput(callIdA, actualA, 5);
34-
unsigned int resB = faasmAwaitCallOutput(callIdB, actualB, 3);
36+
unsigned int resA =
37+
faasmAwaitCallOutput(callIdA, actualA.c_str(), actualA.size());
38+
unsigned int resB =
39+
faasmAwaitCallOutput(callIdB, actualB.c_str(), actualB.size());
3540

3641
if (resA != 0 || resB != 0) {
3742
printf("One or more chained calls failed: %i %i\n", resA, resB);
3843
return 1;
3944
}
4045

41-
if (!faasm::compareArrays<uint8_t>(actualA, expectedA, 5)) {
46+
if (actualA != expectedA) {
4247
return 1;
4348
}
4449

45-
if (!faasm::compareArrays<uint8_t>(actualB, expectedB, 3)) {
50+
if (actualB != expectedB) {
4651
return 1;
4752
}
4853

func/demo/dummy.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
#include <faasm/faasm.h>
22

3+
#include <string>
4+
35
int main(int argc, char* argv[])
46
{
5-
uint8_t output[5];
6-
for (int i = 0; i < 5; i++) {
7-
output[i] = (uint8_t)i;
8-
}
7+
std::string output = "dummy";
98

10-
faasmSetOutput(output, 5);
9+
faasmSetOutput(output.c_str(), output.size());
1110

1211
return 0;
1312
}

func/demo/echo.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@ int main(int argc, char* argv[])
1515
// Handle empty input
1616
if (inputLen == 0) {
1717
const char* output = "Nothing to echo";
18-
auto bytesOutput = reinterpret_cast<const uint8_t*>(output);
19-
faasmSetOutput(bytesOutput, strlen(output));
18+
faasmSetOutput(output, strlen(output));
2019
return 0;
2120
}
2221

2322
printf("Echoing %s\n", inputStr);
2423

25-
faasmSetOutput(reinterpret_cast<const uint8_t*>(inputStr), inputLen);
24+
faasmSetOutput(inputStr, inputLen);
2625

2726
return 0;
2827
}

func/demo/fibonacci.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ int main(int argc, char* argv[])
2525

2626
std::string output =
2727
"Fibonacci " + std::to_string(fibNum) + " = " + std::to_string(result);
28-
const uint8_t* outputBuffer;
29-
outputBuffer = reinterpret_cast<const uint8_t*>(output.c_str());
30-
faasmSetOutput(outputBuffer, output.size());
28+
faasmSetOutput(output.c_str(), output.size());
3129

3230
return 0;
3331
}

func/demo/getdents.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ int main(int argc, char* argv[])
3838

3939
closedir(dirp);
4040

41-
faasmSetOutput(reinterpret_cast<const uint8_t*>(output.c_str()),
42-
output.size());
41+
faasmSetOutput(output.c_str(), output.size());
4342

4443
return 0;
4544
}

func/demo/hello.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ int main(int argc, char* argv[])
44
{
55
const char* message = "Hello Faasm!";
66

7-
faasmSetOutput((uint8_t*)message, 12);
7+
faasmSetOutput(message, 12);
88

99
return 0;
1010
}

func/demo/mmap.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ int main(int argc, char* argv[])
1313
size_t nPages = 3;
1414
size_t memLen = (nPages * 64 * 1024) + 1234;
1515

16-
uint8_t outputBuf[1];
16+
std::string output;
1717

1818
char* memPtrs[10];
1919
std::array<std::string, 10> expected;
@@ -53,8 +53,8 @@ int main(int argc, char* argv[])
5353
}
5454
}
5555

56-
outputBuf[0] = 1;
57-
faasmSetOutput(outputBuf, 1);
56+
output = "success";
57+
faasmSetOutput(output.c_str(), output.size());
5858

5959
return 0;
6060
}

0 commit comments

Comments
 (0)