aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJared Roesch <[email protected]>2014-10-02 02:05:49 -0700
committerJared Roesch <[email protected]>2014-10-05 02:43:37 -0700
commit02c124a1fecee45f06e08314554502fce7a8190a (patch)
treeb42394494ff4b3e076e11f439fd12e393a4fc67a /src
parentMake errors human readable (diff)
downloadrust-openssl-02c124a1fecee45f06e08314554502fce7a8190a.tar.xz
rust-openssl-02c124a1fecee45f06e08314554502fce7a8190a.zip
Address CR comments and add a test
Diffstat (limited to 'src')
-rw-r--r--src/ssl/error.rs30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/ssl/error.rs b/src/ssl/error.rs
index b7688595..a1e8eadc 100644
--- a/src/ssl/error.rs
+++ b/src/ssl/error.rs
@@ -21,24 +21,36 @@ pub enum OpensslError {
/// An unknown error
UnknownError {
/// The library reporting the error
- library: CString,
+ library: String,
/// The function reporting the error
- function: CString,
+ function: String,
/// The reason for the error
- reason: CString
+ reason: String
}
}
-fn get_lib(err: c_ulong) -> CString {
- unsafe { CString::new(ffi::ERR_lib_error_string(err), false) }
+fn get_lib(err: c_ulong) -> String {
+ unsafe { CString::new(ffi::ERR_lib_error_string(err), false) }.to_string()
}
-fn get_func(err: c_ulong) -> CString {
- unsafe { CString::new(ffi::ERR_func_error_string(err), false) }
+fn get_func(err: c_ulong) -> String {
+ unsafe { CString::new(ffi::ERR_func_error_string(err), false).to_string() }
}
-fn get_reason(err: c_ulong) -> CString {
- unsafe { CString::new(ffi::ERR_reason_error_string(err), false) }
+fn get_reason(err: c_ulong) -> String {
+ unsafe { CString::new(ffi::ERR_reason_error_string(err), false).to_string() }
+}
+
+#[test]
+fn test_uknown_error_should_have_correct_messages() {
+ let err = 336032784;
+ let library = get_lib(err);
+ let function = get_func(err);
+ let reason = get_reason(err);
+
+ assert_eq!(library.as_slice(),"20");
+ assert_eq!(function.as_slice(), "119");
+ assert_eq!(reason.as_slice(), "1040");
}
impl SslError {