text: var fs   = require("fs"),
      path = require("path"),
      vm   = require("vm"),
      long = require("long"),
      tape = require("tape");
  
  var distPath = path.join(__dirname, "..", "..", "dist");
  
  [
      {
          name: "full",
          data: fs.readFileSync(path.join(distPath, "protobuf.min.js")).toString("utf8")
      },
      {
          name: "light",
          data: fs.readFileSync(path.join(distPath, "light/protobuf.min.js")).toString("utf8")
      },
      {
          name: "minimal",
          data: fs.readFileSync(path.join(distPath, "minimal/protobuf.min.js")).toString("utf8")
      }
  ]
  .forEach(function(dist) {
  
      tape.test(dist.name + " build", function(test) {
  
          test.test(test.name + " - script tags", function(test) {
              var sandbox;
  
              var dcodeIO = { Long: long };
  
              vm.runInNewContext(dist.data, sandbox = {
                  window: {
                      dcodeIO: dcodeIO
                  },
                  dcodeIO: dcodeIO
              });
  
              test.ok(sandbox.window.protobuf, "should load the library as a global");
              test.ok(sandbox.window.protobuf.util.Long, "should load long.js to util");
              test.end();
          });
  
          test.test(test.name + " - webworkers", function(test) {
              var sandbox;
  
              var dcodeIO = { Long: long };
  
              vm.runInNewContext(dist.data, sandbox = {
                  self: {
                      dcodeIO: dcodeIO
                  },
                  dcodeIO: dcodeIO
              });
  
              test.ok(sandbox.self.protobuf, "should load the library as a global");
              test.ok(sandbox.self.protobuf.util.Long, "should load long.js to util");
              test.end();
          });
  
          test.test(test.name + " - amd loaders", function(test) {
              var sandbox;
  
              function fakeDefine(deps, factory) {
                  test.same(deps, [ "long" ], "should request long.js as a dependency");
                  test.notOk(sandbox.window.protobuf.util.Long, "should not have loaded long.js before calling the factory function");
                  factory(long);
                  test.ok(sandbox.window.protobuf.util.Long, "should have loaded long.js after calling the factory function");
              }
              fakeDefine.amd = true;
  
              vm.runInNewContext(dist.data, sandbox = {
                  define: fakeDefine,
                  window: {},
                  require: undefined,
                  console: console
              });
  
              test.ok(sandbox.window.protobuf, "should load the library as a global");
              test.end();
  
          });
  
      });
  
  });
  
  // commonjs uses ./src
  