PageRenderTime 36ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/slow/collection_classes/migration/unserialize-vector.php

http://github.com/facebook/hiphop-php
PHP | 43 lines | 26 code | 10 blank | 7 comment | 9 complexity | c893cc9b867cc68708c2cab3cb18efac MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?hh
  2. // Test that we can handle unserialization of Vectors with
  3. // and without namespaces.
  4. function main() {
  5. $v = Vector {1, 2, 3};
  6. // unserialize o serialize == id
  7. var_dump(unserialize(serialize($v)) == $v);
  8. // Namespaced vector.
  9. $nsv = "V:9:\"HH\\Vector\":3:{i:1;i:2;i:3;}";
  10. var_dump(unserialize($nsv) == $v);
  11. // Nested namespaced vectors.
  12. $nested = "V:9:\"HH\\Vector\":2:{V:9:\"HH\\Vector\":0:{}" .
  13. "V:9:\"HH\\Vector\":2:{i:1;i:2;}}";
  14. var_dump(unserialize($nested) == Vector {Vector {}, Vector {1, 2}});
  15. // O format
  16. $o1 = "O:6:\"Vector\":0:{}";
  17. $o2 = "O:9:\"HH\\Vector\":0:{}";
  18. var_dump(unserialize($o1) == Vector {});
  19. var_dump(unserialize($o2) == Vector {});
  20. // Unserialization is case-insensitive.
  21. $s1 = "V:9:\"hh\\vector\":3:{i:1;i:2;i:3;}";
  22. $s2 = "V:9:\"HH\\VecTor\":3:{i:1;i:2;i:3;}";
  23. $s3 = "V:6:\"vector\":3:{i:1;i:2;i:3;}";
  24. $s4 = "V:6:\"Vector\":3:{i:1;i:2;i:3;}";
  25. var_dump(unserialize($s1) == $v);
  26. var_dump(unserialize($s2) == $v);
  27. var_dump(unserialize($s3) == $v);
  28. var_dump(unserialize($s4) == $v);
  29. }
  30. <<__EntryPoint>>
  31. function main_unserialize_vector() {
  32. main();
  33. }