Improve unit test infrastructure - allow control of write()
[oweals/dinit.git] / src / tests / test-includes / baseproc-sys.h
index c8e2441877479a50d05247792a22b27381d6b79a..2d2980783a36b2bdb75255c753a73d73c8803363 100644 (file)
 
 namespace bp_sys {
 
+class write_handler
+{
+public:
+    virtual ssize_t write(int fd, const void *buf, size_t count) = 0;
+    virtual ~write_handler() { }
+};
+
+class default_write_handler : public write_handler
+{
+public:
+    std::vector<char> data;
+
+    virtual ssize_t write(int fd, const void *buf, size_t count)
+    {
+        data.insert(data.end(), (char *)buf, (char *)buf + count);
+        return count;
+    }
+};
+
 // Test helper functions:
 
+void init_bpsys();
+
 // allocate a file descriptor
 int allocfd();
+int allocfd(write_handler *hndlr);
 
 void supply_read_data(int fd, std::vector<char> &data);
 void supply_read_data(int fd, std::vector<char> &&data);